Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP + MySQL sivustolle kielituki

Hoover [21.12.2007 15:29:27]

#

Mitenkä kielituen voisi toteuttaa sivustolle, joka on rakennettu PHP-ohjelmointikielellä ja se käyttää MySQL-tietokantoja?

Itselle tuli mieleen tällainen ratkaisu, että sivun osoitteessa voisi olla parametri, joka määrittää kielen:
www.osoite.fi/index.php?lang=FIN

Tuohon asti onnistuu minulta. Sitten tämän parametrin mukaan ladattaisiin jostain lähteestä (tekstitiedosto palvelimella / tietokanta) tekstit.

Asia mikä tässä itseä askarruttaa on kuitenkin se, että kun sivustolla on formin buttoneita, niin mitenkä saan niihin tekstit eri kielelle? Minulla on muutamia formeja sivuilla, joissa on useita nappeja. Kun käyttäjä painaa nappia, niin scripti tutkii napin tekstin perusteella mitä painettiin ja mitä sen perusteella pitää tehdä. Esimerkiksi "Poista" ja "Muokkaa" napit. Jos nappien nimet vaihtuu "Delete" ja "Edit", niin scripti ei enää älyä mitä nappia painettiin.

Voisiko nappeja tutkia jonkun ID:n perusteella scripteissä? Esim. jos formilla on poista ja muokkaa -napit? Tällöinhän tekstit napeissa voisivat olla ihan mitä vain, kunhan ID:t vain pysyvät samoina kielestä riippumatta.

Esimerkki (scripti.php):

<?php

// Näiden ehtojen toiminnallisuus sekoaa jos nappien tekstejä vaihdetaan
if ($_POST['nappula'] == 'Muokkaa')
{
   echo "Painettiin Muokkaa-nappia ja suoritetaan sen toiminnallisuus...";
}
else if ($_POST['nappula'] == 'Poista')
{
   echo "Vastaavasti Poista-napin toiminnallisuus...";
}

echo("
<form action='scripti.php' method='post'>
   <input type='submit' name='nappula' value='Muokkaa'>
   <input type='submit' name='nappula' value='Poista'>
</form>
");
?>

GimPeltzi [21.12.2007 15:53:04]

#

Määrittelet eri nappuloille eri namen, elikkä..

<input type="submit" name="muokkaa" value="Muokkaa" />
<input type="submit" name="poista" value="Poista" />

Valuen voit tulostaa PHP:lla valitun kielen mukaan ja pitää namen samana, ja voit selvittä mitä nappia on painettu vaikkapa isset() -funktiolla, tyyliin:

if(isset($_POST['muokkaa'])){

}
elseif(isset($_POST['poista'])){

}

Vastaus

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

Tietoa sivustosta