taalversie En/Ne per email - snelle oplossing

Status
Niet open voor verdere reacties.

Yariev

Gebruiker
Lid geworden
4 okt 2004
Berichten
103
Ik heb een bestaand formulier dat antwoorden in het Nederlands in een dbase plaatst. Na invoer van het formulier moet er een email(platte tekst) ter bevestiging verstuurd worden in zowel Nederlands als Engels.
In deze email moeten alle vragen + antwoorden staan.
De opgeslagen antwoorden zijn nu: wel/niet, ja/nee of vlees/vis/vegetarisch.

Ik kan een extra tabel maken in de database met de Engelse termen en daar de nederlandse termen tegenaan houden en zo vertalen, maar dan moet ik voor elk antwoord een query op de dbase afvuren.

Weet iemand een snellere en minder omslachtige oplossing?

thnx
 
Waarom maak je niet een taal-onafhankelijke verwijzing?

Voor het veld waar je "wel/niet" in kunt vullen zet je "0" voor wel en "1" voor niet
Voor het veld waar je "ja/nee" in kunt vullen is "2" voor ja en "3" voor nee
en als laatste heb je 4,5 en 6 als opties voor het eten.

Daarna maak kun je een array maken voor de taal, die je eerst via een sessie hebt laten bepalen o.i.d.
PHP:
if($_SESSION['taal'] == "nl") {
  $keuzeArray = array("Wel", "Niet", "Ja", "Nee", "Vlees", "Vis","Vegetarisch");
} else {
  $keuzeArray = array("True", "False", "Yes", "No", "Meat", "Fish","Vegetarian");
}
echo '
<select name="iets">
  <option value="0">'. $keuzeArray[0] .'</option>
  <option value="1">'. $keuzeArray[1] .'</option>
</select>';
Je zet dus de waardes uit de array als value aangezien positie 0 uit de array "Wel" of "True" bevat kun je die dus later weer opvragen door $keuzeArray[$row['veldnaam']] op te vragen :)
 
De reden is dat ik er ook een beheermodule heb aanhangen, en deze aanpassingen op veel meer pagina's consequenties hebben.

Verder is er geen taalversie van het formulier (alleen engels), maar moet het emailbericht alleen 2 talig zijn.
 
Dan gebruik je dit alleen op de verwerking van het formulier...

Dan maak je een NL-array en een EN-array.
 
Oke stel dat ik inderdaad 1,2,3,4,5,6 opneem in de database ipv we, niet, ect, hoe koppel ik deze dan precies aan de 2 arrays?

Ik vraag bijvoorbeeld de variabele $eten op uit de dbase, hoe zet ik dat dan om in Engels. Ik kan het even niet voor me zien, ook omdat ik nog niet veel met arrays gewerkt heb tot nu toe. :confused:

Alvast bedankt voor de toelichting.
 
Simpel voorbeeld:
PHP:
$keuzeArrayNL = array("Wel", "Niet", "Ja", "Nee", "Vlees", "Vis","Vegetarisch");
$keuzeArrayEN = array("True", "False", "Yes", "No", "Meat", "Fish","Vegetarian"); 

$query = "SELECT eten FROM tabel";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);

// $row['eten'] bevat nu een getal dat in de tabel uit de database komt
// dit getal komt overeen met de positie in de array (array begint bij 0)
// stel dat dit het getal 6
echo 'Je hebt als eten gekozen: '. $keuzeArrayNL[$row['eten']].'<br />
You have selected '. $keuzeArrayEN[$row['eten']] .' as food';

/* Dit levert op:
Je hebt als eten gekozen Vis
You have selected Fish as food
*/
Uiteraard zul je de query aan moeten passen naar jouw structuur. Dit is alleen even om een voorbeeld te geven van de uitwerking :)
 
Geweldig Tha Devil, ik ben je echt zeer dankbaar. :thumb:

Ik moest het even 2 of 3 keer doorlezen maar ik begrijp m.

Gezien arrays bij 0 beginnen moet ik zeker ook 0,1,2,3,4,5 in de dbase wegschrijven voor de gegeven antwoorden ipv 1/tm6?
 
Gezien arrays bij 0 beginnen moet ik zeker ook 0,1,2,3,4,5 in de dbase wegschrijven voor de gegeven antwoorden ipv 1/tm6?

:thumb: goed begrepen ;)

In mijn eerste bericht staat het trouwens ook wel :)
 
oja ik zie het nu ook staat, had ik het toch 4 x moeten lezen :o

Bedankt voor je voorbeeld en hulp Devil, ik ga morgen de hele boel omgooien
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan