par
karpediem » 27 déc. 2006, 05:45
Bonjour,
Moi j'ai un tout petit problème (mais problème quand même, enfin pour moi ;o) dans le même style que celui-ci... alors je ne sais pas s'il faut que je fasse un nouveau post ou si je dois compléter celui-ci...
Bon, je me lance et je vous explique :
J'ai un magnifique tableau associatif que j'ai créé avec php suite à la lecture des enregistrements d'une table.
J'ai, pour simplifier : $_VILLE[$code_postal] = $ville;
Dans mon formulairre, j'ai une liste déroulante avec les codes postaux (liste alimentée avec ce même tableau) et un champ ville.
Je souhaiterai que lorsque l'évènement onChange() est détecté sur mon champ code_postal, mon programme aille lire mon tableau php (index = code_postal.value) et renvoie la valeur associée (un nom de ville) qu'il a trouvé dans mon champ ville...
Le pb c'est la communication javascript <=> php. Dans un sens ça va, mais dans l'autre, j'ai du mal...
Afin d'être plus explicite, voici un bon (extraction explicite tant que possible ;o) de mon code :
Code : Tout sélectionner
<FORM name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
blablabla
<select name="code_postal" size="1" onChange="recup_ville();">
<?php
foreach ($_VILLE as $key => $value)
{
echo '<option value="'.$key.'">';
echo $key;
echo '</option>'."\n";
}
?>
</select>
Ville
<input name="ville" type="text" size="52">
blablabla
</FORM>
Dans mon javascript j'ai commencé comme ceci...
Code : Tout sélectionner
<script>
function recup_ville(){
var form_err = "0";
if (form1.code_postal.value.length <1 )
{
form_err = "1";
}
if ( form_err == "1")
{
alert('Le Code Postal doit être complet');
}
else
{
form1.ville.value = ... c'est là que ça se gate ;-(( il faudrait que je puisse lire $_VILLE[form1.code_postal.value] et ça, je sais pô faire ;-(
}
}
</script>
J'ai essayé de passer par notre très cher php en bidouillant un truc comme ça :
Code : Tout sélectionner
<?php
echo "<script>\n";
echo "function test_recup(){\n";
echo $var."=form1.code_postal.value;\n";
echo "return ".$_VILLE[$var].";\n";
echo "}\n";
echo "</script>\n";
?>
pour après dans mon javascript compléter ma fonction recup_ville() avec :
Mais ça ne fonctionne pas... rien n'est récupéré ;-(
Du coup, j'ai un tas de questions à vous pôser :
- Pensez-vous que je suis dans la bonne direction ?
- Y a-t-il une façon plus simple de communiquer des valeurs javascript à php ?
- Avez-vous des suggestions pour mon problème ?
Merci à tous ne serait-ce que pour m'avoir lu jusqu'au bout sans vous endormir ;o))
A bientôt