login  Naam:   Wachtwoord: 
Registreer je!
 Forum

talen

Offline leendertW - 31/01/2005 12:59
Avatar van leendertWPHP beginner Ik heb een formulier gemaakt met radio buttons en dan kan een bezoeker kiezen in welke taal hij de website wil.
Hoe moet ik dat nou doen.

Ik heb een aantal talen in een array gezet maar hoe dan?
het moet denk ik zoiets met if (onclick ...

Wie kan mij helpen?

20 antwoorden

Gesponsorde links
Offline Hendry - 31/01/2005 13:05 (laatste wijziging 31/01/2005 13:06)
Avatar van Hendry HTML interesse ik denk dat je opzoek bent naar dit stukje:
<INPUT type=radio name=language value=1 onclick=this.form.submit();>
Offline twopeak - 31/01/2005 13:16
Avatar van twopeak Gouden medaille

PHP ver gevorderde
eens je weet welke taal hij wilt (het formulier werd gesubmitted) dan onthou je de taal in een session (of via de cookies/url, maar sessions lijken mij het handigst)

Wat je in je session bewaard is de "key" van je Array:

  1. <?
  2. $inhoud = Array(
  3. "NL" => Array("welkom", "goeiemorgend", "goeiemiddag", "goeienavond") ,
  4. "FR" => Array("bienvenu", "bonne mattinée", "bonjour", "bonsoir")
  5. );
  6. ?>


en dan heb je in je session
$_SESSION['taal'] = "FR";
en in je phpcode komt dan

  1. <?
  2. echo $inhoud[$_SESSION['taal']][3]; //drukt "bonsoir" af
  3. ?>


ik moet nu ff denken of je zomaar een array in een array mag zetten, ik denk van wel, anders doe je er aanhalingstekens rond (of is dat voor strings) ofwel steek je het in een gewone var.

Om het simpeler voor jou te maken, zou je je array van de taal zelf ook met sleutels kunnen werken:
"FR" => ( "welkom" => "bienvenu",
"goeiemorgend" => "bonne matinée",
....

dan kun je die later ook zo aanspreken ipv. met nummertjes die totaal nietszegend worden.
Offline remy - 31/01/2005 14:50
Avatar van remy PHP ver gevorderde kun je niet beter zon dropdownmenu maken?
Offline ranco - 31/01/2005 14:52
Avatar van ranco PHP gevorderde Nee, ik denk zelf ook dat een radiobutton er mooier uitziet, en het is net zo gemakkelijk...

Waarom zou hij beter een dropdownmenu moeten maken?
Offline Thomas - 31/01/2005 15:05 (laatste wijziging 31/01/2005 15:05)
Avatar van Thomas Moderator dropdown + cookies werkt ook prima, en het cookie onthoudt je taal-voorkeur voor volgende keren dat je de site bezoekt.
Offline Tuinstoel - 31/01/2005 18:31 (laatste wijziging 31/01/2005 18:33)
Avatar van Tuinstoel PHP expert Je zou ook gewoon met taal bestanden kunnen werken.
Dan kijk je vanuit je pagina welke taal is ingesteld, en dan included hij dat pakket.
  1. <?
  2. if(isset($_SESSION['taal']))
  3. { $iLang = $_SESSION['taal']; }
  4. else
  5. { $iLang = 'nl'; /* standaarwaarde */ }
  6.  
  7. if(file_exists('/taal/'.$iLang.'.php'))
  8. { include '/taal/'.$iLang.'.php'; }
  9. else
  10. { die("Taal bestand bestaat niet!"); }
  11.  
  12. echo $x['welkom'];
  13. ?>
  14.  
  15. En dan in nl.php bijv.
  16.  
  17. <?
  18. $x['welkom'] = 'Hallo mensen';
  19. ?>
  20.  
  21. En dan zou er in fr.php bijv. dit staan:
  22.  
  23. <?
  24. $x['welkom'] = 'Jah ik kan geen frans :P';
  25. ?>
  26.  
  27. Enzovoort.
  28.  
  29. En dan zet je die sessie inderdaad met een dropdown box of radio selectie.
  30.  
  31. <?
  32. $dLang = array
  33. (
  34. 'nl' => 'Nederlands',
  35. 'fr' => 'Frans',
  36. 'en' => 'English',
  37. 'du' => 'Deutsch'
  38. );
  39.  
  40. foreach($dLang as $dKey => $dValue)
  41. {
  42. ?>
  43. <input type="radio" name="taal" value="<?= $dKey; ?>" /> <?= $dValue; ?><br />
  44. <?
  45. }
  46. ?>
Offline leendertW - 31/01/2005 19:19 (laatste wijziging 31/01/2005 19:22)
Avatar van leendertW PHP beginner Erg Bedankt.

Maar ik ben verder gegaan en nu wil ik spullen in een databse gooien en dan de versturen per mail maar hij geeft geen fouten en ik krijg een mailtje dus ik verwachtte dat hij het wel oplsoeg in de database maar als ik kijk dan staat er niks in wat kan dat zijn? dit is de code:

  1. <?php
  2. mysql_connect ("", "l", "");
  3.  
  4. $mysql_query=("INSERT INTO 'bestelling' (naam, achternaam, straat, huisnummer, postcode, woonplaats, telefoon, email, bestellling) VALUES
  5. ('".$_POST[naam]."', '".$_POST[achternaam]."', '".$_POST[straat]."','".$_POST['huisnummer']."','".$_POST[postcode]."','".$_POST[woonplaats]."',
  6. '".$_POST[telefoon]."','".$_POST[email]."','".$_POST[bestel2]."')") or die (mysql_error());
  7.  
  8. @$send=mail("$email_webmaster", "Bestelling", "
  9. Naam: ".$_POST['naam']."
  10.  
  11. //etc.etc.etc....
  12.  
  13. ?>


Offline Tuinstoel - 31/01/2005 21:54
Avatar van Tuinstoel PHP expert Njah dat zou dus heel anders moeten.

1) Wel connectie maken uiteraard 
2) veldnamen moeten met ` en ` vervoegd worden, dus niet met ' en ', want dat geeft een waarde aan (dus `bestelling` i.p.v. 'bestelling').
3) In post variabelen moet je ook met quotes werken, dus geen $_POST[naam], maar $_POST['naam'] of $_POST["naam"], wat je wil.
4) Gebruik geen @ voor dingetjes, voor variabelen werkt het toch niet helemaal goed denk ik.
5) Gebruik dan liever een if statement bij 't mailen, of die ofzoiets.

  1. <?
  2. if(mail($to,$onderwerp,$bericht))
  3. { echo 'E-mail is verzonden.'; }
  4. else
  5. {
  6. echo 'Het e-mailen is niet gelukt';
  7. // omdat het mail() niet werkt, dus false retourneerde, krijg je dit.
  8. }
  9. ?>
Offline leendertW - 31/01/2005 22:41 (laatste wijziging 01/02/2005 08:12)
Avatar van leendertW PHP beginner 1) je de connectie wel ja:D
2) Goed dat zal ik eens veranderen.
3) is goed.
4) is ook goed:D
5) je dat heb ik ook gedaan en snap ik ook wel, maar die had ik er niet bij gezet:$ het is namelijk een groot script.

Ik zal het eens gaan proberen.

Bedankt

##edit

Ik heb het allemaal veranderd maar het komt niet in de database terecht.:S

dit is het script (gedeelte)

  1. <?php
  2. ............
  3.  
  4. if($ok != "nee") {
  5.  
  6. //hier de database connectie
  7.  
  8. $mysql_query=("INSERT INTO `bestelling` (naam, achternaam, straat, huisnummer, postcode, woonplaats, telefoon, email, bestellling) VALUES
  9. ('".$_POST['naam']."', '".$_POST['achternaam']."', '".$_POST[straat]."','".$_POST['huisnummer']."','".$_POST['postcode']."','".$_POST['woonplaats']."',
  10. '".$_POST['telefoon']."','".$_POST['email']."','".$_POST['bestel2']."')") or die (mysql_error());
  11.  
  12. $send=mail("$email_webmaster", "Bestelling", "
  13. Naam: ".$_POST['naam']."
  14. Achternaam: ".$_POST['achternaam']."
  15. Adres: ".$_POST['straat']."
  16. Huisnummer ".$_POST['huisnummer']."
  17. Postcode: ".$_POST['postcode']."
  18. Woonplaats: ".$_POST['woonplaats']."
  19. Telefoon: ".$_POST['telefoon']."
  20. Email: ".$_POST['email']."
  21.  
  22. De bestelling is:
  23. ".$_POST['bestel2']."
  24.  
  25.  
  26. Hier wat overige informatie over het persoon
  27. Note: ".$_POST['naam']." ".$_POST['achternaam']." stuurde deze email op $datum om $tijd
  28. Het IP adres van ".$_POST['naam']." is: $ipadres
  29. Het hostadres van ".$_POST['naam']." ".$_POST['achternaam']." is: $hostmask", "From: ".$_POST['naam']." <$email>");
  30.  
  31. if($send == "1"){
  32. mail($email, "Bestelling geplaatst", "
  33. Uw bestelling is geplaatst.\n\n
  34. Uw bestelde artikelen zijn:\n\n
  35. ".$_POST['bestel2']."
  36. Uw bestelling zal worden verzonden ",
  37. "From: iets@iets.nl"
  38. );
  39.  
  40. ?>
  41. <table class="tekst" align="center" style="width: 92%";>
  42. <tr>
  43. <td align="left">Beste <? echo $_POST['naam'] ; ?>, uw bestelling is geplaatst.<br> U ontvangt binnen enkele minuten een mailtje.
  44. </tr>
  45. </td>
  46. </table>
  47. <?
  48. }else{
  49. //hier dan weer het form
  50.  
  51. ?>
Offline Tuinstoel - 01/02/2005 12:18
Avatar van Tuinstoel PHP expert
  1. $mysql_query=("INSERT INTO `bestelling` (naam, achternaam, straat, huisnummer, postcode, woonplaats, telefoon, email, bestellling) VALUES
  2. ('".$_POST['naam']."', '".$_POST['achternaam']."', '".$_POST[straat]."','".$_POST['huisnummer']."','".$_POST['postcode']."','".$_POST['woonplaats']."',
  3. '".$_POST['telefoon']."','".$_POST['email']."','".$_POST['bestel2']."')") or die (mysql_error());


Je zou dan altijd nog een error krijgen (mysql_error()), dus je zult dan de $ voor mysql_query() weg moeten halen, want nu heb je er een variabele van gemaakt.
Offline leendertW - 01/02/2005 16:35
Avatar van leendertW PHP beginner Maar er moet toch wel een $ voor mysql_query?
Dat zie je overal:S
Offline twopeak - 01/02/2005 17:37
Avatar van twopeak Gouden medaille

PHP ver gevorderde
nope,
mysql_query() is een functie. Die gaat bepaalde acties uitvoeren en (mischien) een waarde terugsturen.

Als je die waarde wilt onthouden; moet je ze in een variabele onthouden:

$variabele = mysql_query('SELECT * FROM...');

een functie heeft NOOIT een dollarteken ervoor!
Offline leendertW - 01/02/2005 18:30 (laatste wijziging 01/02/2005 18:45)
Avatar van leendertW PHP beginner maar als ik het zo heb
  1. <?
  2. mysql_query=("INSERT INTO `bestelling` (naam, achternaam, straat, huisnummer, postcode, woonplaats, telefoon, email, bestellling) VALUES
  3. ('".$_POST['naam']."', '".$_POST['achternaam']."', '".$_POST[straat]."','".$_POST['huisnummer']."','".$_POST['postcode']."','".$_POST['woonplaats']."',
  4. '".$_POST['telefoon']."','".$_POST['email']."','".$_POST['bestel2']."')") or die (mysql_error());
  5. ?>


dan geeft hij een parse error op regel156 en dat is hier de regel met mysql_query=("")


en hier hebben ze er toch ook een $ teken voor:

http://www.site...&id=79
Offline roy - 01/02/2005 18:36 (laatste wijziging 01/02/2005 18:40)
Avatar van roy PHP gevorderde Dat zie je aan de kleur toch al...
dat straat niet goed is?

  1. <?PHP
  2. '".$_POST['straat']."'
  3. ?>


Voor dat tweede:
Ik denk dat sommige mensen niet hebben gezien dat jij die variabel hetzelfde hebt genoemd als de functie, ik zou een andere naam kiezen, je haalt nu dingen door elkaar.


Groeten,
Roy
Offline numlockrond - 01/02/2005 18:38
Avatar van numlockrond Onbekend
Citaat:
dan geeft hij een parse error op regel156 en dat is hier de regel met mysql_query=("")
Er moet natuurlijk ook geen = tussen...
Citaat:
en hier hebben ze er toch ook een $ teken voor:

http://www.site...=6&; id=79
Daar staat geen $ voor de functie mysql_query(), alleen voor een variabele, zoals het hoort. Misschien goed om nog eens een basiscursus PHP door te nemen (en dan niet de tuts op deze site).
Offline leendertW - 01/02/2005 18:44 (laatste wijziging 01/02/2005 18:54)
Avatar van leendertW PHP beginner sorry foutje van die =(dat weet ik wel maar ik zit alleen met dat $ teken)

bedankt Roy, dat zocht ik.
Offline roy - 01/02/2005 18:47
Avatar van roy PHP gevorderde Je moet de query anders opbouwen.

Lees goed de tutorial op deze site
Offline leendertW - 01/02/2005 19:02
Avatar van leendertW PHP beginner Ik heb de tutorial door gelezen en hij doet het nu alleen weet ik NIET wat ik nou fout deed.
Ik miste dit stuk:
mysql_query($query)

//dit had ik alleen
or die (mysql_error());

Wanneer je dit stuk: mysql_query($query)
niet hebt dropt hij het dus niet in de database.
Offline numlockrond - 01/02/2005 19:08
Avatar van numlockrond Onbekend
Citaat:
Wanneer je dit stuk: mysql_query($query)
niet hebt dropt hij het dus niet in de database.
Gek hè...
Offline leendertW - 01/02/2005 20:16
Avatar van leendertW PHP beginner nee maar dat had ikdus over het hoofd gezien:!:
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.289s