Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: pystyykö JOSsittelemaan vai...?

JanKoro [29.10.2003 08:55:58]

#

minulla on kotisivuilla(koti.mbnet.fi/jan87jan) "nurkka"-sivulla "alasvetovalikko", josta vaihdetaan kieli. se toimii siten että se vaihtaa kielen, mutta valittuun kieleen ei pysty menemään uudestaan, kun vaihtaa kielen, koska siinä näkyy aina se finnish, vaikka olisi englannin kielisillä sivuilla.
Siinä pitäisi olla se kieli valittuna, jossa ollaan. Miten sen sais toimii tollee, voisko esim. JOSsitella.
Esim. JOS sivulla ENG valikosta valittu English tai JOS sivulla SWE valikosta valittu Finnish.

leftover [29.10.2003 09:15:55]

#

En ehkä ymmärtänyt kysymystä täysin oikein mutta kokeillaan

<?php

// Luodaan kielialkiot
$kielet = array("fi","se","en");

// Luodaan option-lista
foreach ($kielet as $kieli) {
   $selected = "";
   // Jos kieli löytyy session-muuttujasta
   if ($kieli == $_SESSION['kieli']) {
      // On valittu
      $selected = ' selected="selected"';
      }
   // Listaan lisäys
   $kielilista .= "<option value=\"{$kieli}\"{$selected}>{$kieli}</option>
";
   }

// Koko mössö ulos
print <<<EOT
<select name="lankuaakki">
{$kielilista}
</select>

EOT;

?>

JanKoro [29.10.2003 13:50:25]

#

<HTML><HEAD>
<TITLE>Jan Koro</TITLE>
</HEAD>
<BODY bgcolor="black" text="white">
You can change language:<select onChange="top.location.href=this.options[this.selectedIndex].value">
<option value="indexNL.html">Dutch</option>
<option value="indexENG.html">English</option>
<option value="indexEST.html">Estonian</option>
<option value="index.html">Finnish</option>
<option value="indexGER.html">German</option>
<option value="indexITA.html">Italian</option>
<option value="indexSPA.html">Spanish</option>
<option value="indexSWE.html">Swedish</option>
<option>--------------------</option>
<option selected>
<?php
if("Location: indexNL.html")
  {
     print("DUTCH");
  }
if("Location: indexENG.html")
  {
     print("ENGLISH");
  }
if("location: indexEST.html")
  {
     print("ESTONIAN");
  }
if("location: index.html")
  {
     print("FINNISH");
  }
if("location: indexGER.html")
  {
     print("GERMAN");
  }
if("location: indexITA.html")
  {
     print("ITALIAN");
  }
if("location: indexSPA.html")
  {
     print("SPANISH");
  }
if("location: indexSWE.html")
  {
     print("SWEDISH");
  }
?>
</option>
</select>
</BODY></HTML>

se lähdekoodi on nyt tommonen ja se tulostaa noi kaikki kielet yhteen DUTCHENGLISHESTONIAN.....?
miten muutan?

leftover [29.10.2003 14:45:05]

#

Tota, mä vääntäisin alusta asti uudestaan käyttäen hyödyksi enemmän php:tä (jos olisi oma sivu), mutta muuta toi järkyn pitkä if-koodihässäkkä seuraavaan muotoon:

// Poimitaan se maatunnus koko höskästä
$ekajaraytys = explode(".", $_SERVER['REQUEST_URI']);
$maatunnus = explode("index", $ekajaraytys[0]);
switch($maatunnus[1]) {
   case "NL":
      $maakutsuu = "DUTCH";
      break;
   case "ENG":
      $maakutsuu = "ENGLISH";
      break;

// Ja tätä selkokielistä tekstiä jatkuu peräti seitsemän
// sivun verran kunnes tulee

   case "SWE":
      $maakutsuu = "SWEDISH";
      break;
   default:
      $maakutsuu = "FINNISH";
      break;
   }

casejen väliin voi toki tunkea myös muuta ohjelmallisuutta, mutta tuo toimii ainakin melkein hyvin sun järjestelmässä.

Suosittelen kyllä pähkäilemään systeemiä taitojen kehittyessä uudestaan, pitemmän päälle ei ole järkevää veivata joka kieltä varten hirvittäviä switch-case-hässäköitäkään.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta