Php tableau et requete utilisateur

Résolu/Fermé
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010 - 23 janv. 2009 à 20:59
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010 - 24 janv. 2009 à 20:46
Bonjour,
J'aimerais programmer en php et html la chose suivante :
A partir du nom d'un village (donné par l'utilisateur) , retourner la valeur du code postal.

J'ai deux listes :

$liste_CP=array(
"1"=>"39000",
"2"=>"39100",
"3"=>"39200"
...);

$CP_par_ville=array(
"dole"=>"2",
"lons"=>"1",
"saint-claude"=>"3",
Lavans=>"3"
...);


Quelqu'un pourrait-il m'aider ?
D'avance merci.
Awaba
A voir également:

14 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
23 janv. 2009 à 22:03
déja tu peux simplifier en mettant en un seul array avec index chaine au lieu de numerique

$liste_villes_CP=array(
"lons"=>"39000",
"dole"=>"39100",
"saint-claude"=>"39200",
"Lavans"=>"39200"
...);
0
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
23 janv. 2009 à 23:07
Bonjour Awaba,
Bonjour Alain_42,

Si tu es dans l'impossibilité de simplifier la liste comme le suggère Alain_42 (je suppose que le "choix" de deux listes séparées dépend d'un identifiant indépendant du code postal), tu peux essayer d'y accéder par l'instruction imbriquée suivante :

$liste_CP[$liste_villes_CP["ville"]]

Je n'ai pas testé (ça fait un bon moment que je ne touche plus à du PHP) mais en toute logique si on fait $liste_villes_CP["lons"] ça donne "1" et $liste_CP["1"] donne "39000".
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 11:19
Bonjour,
Merci pour vos réponses.
Je suis obligée de maintenir 2 listes.

J'ai fait une page php que j'ai mis sur mon serveur mais ça ne marche pas : voilà le code

<?php
$liste_CP=array(
"1"=>"39000",
"2"=>"39100",
"3"=>"39200"
...);

$CP_par_ville=array(
"dole"=>"2",
"lons"=>"1",
"saint-claude"=>"3",
Lavans=>"3"
...);
?>
<FORM method="POST" action=" que dois je mettre ???">
J'habite à <input type=text size=30 name=ville>
<input type=submit value=Envoyer>
<input type=hidden name=afficher value=ok>
</FORM>

<?php
echo $liste_CP[$liste_villes_CP["ville"]] ;
?>

Vraiment merci de m'éclairer car je n'ai pas le temps pour l'instant d'apprendre le code php mais j'ai besoin de ce petit bout de code.

Awaba
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 11:37
<FORM method="POST" action=" <?php echo $_SERVEUR['PHP_SELF']; ?>"> 



mais si l'utilisateur ne saisit pas exactement le nom de la ville ???

ton script ne marchera pas

il faudrait que tu proposes une liste déroulante des villes qui sont dans ton array
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 12:15
Ah oui, c'est vrai,merci pour la remarque mais comment dois-je faire une liste déroulante ?
Awaba
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 12:53
C'est encore moi, j'ai trouvé un script en javascript pour réaliser une liste déroulante. Pour cela ça cevrait aller.
Mais par contre, à partir du choix que l'utilisateur fera dans la liste "des villes", je ne sais pas comment faire pour renvoyer à l'utilisateur la réponse?
Merci
Awaba
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 13:29
Pourquoi en Javascript ??

voilà une solution en php

<?php
//initialisation des array
$liste_CP=array(
"1"=>"39000",
"2"=>"39100",
"3"=>"39200"
);

$CP_par_ville=array(
"dole"=>"2",
"lons"=>"1",
"saint-claude"=>"3",
"Lavans"=>"3"
);

//le script s'appelle lui meme donc on va recuperer la ville qd on a envoye la page
if(isset($_POST['ville'])){$ville=$_POST['ville'];}else{$ville="";}

?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
J'habite &agrave;: <br />
<select name="ville">
<?php
foreach($CP_par_ville as $cle=>$value){
	//pour creer la liste on parcours l'array des villes,  $cle contient le nom de la ville, $value son num correspondant 1 , 2 ,3 
	$option= "<option value=\"".$value."\"";
	if($ville==$value){ $option.="selected"; } //ça c'est pour conserver la selection au reaffichage de la page
	$option.=">".$cle."</option>";
	echo $option;
}
?>
</select><br /><br />
<input name="envoyer" type="submit" value="Envoyer">
</form>

<?php
if(isset($_POST['envoyer'])){
//on ne peux afficher ça que qd on a clique sur envoyer
	echo "Votre code postal: ".$liste_CP[$ville] ;
}
?> 
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 13:49
Merci Alain 42,
Je ne comprends pas, j'ai copié collé ton message et ça ne marche pas , je n'ai rien ...
Que puis-je faire ?
Awaba
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 14:22
Je viens de trouver mon erreur, dans la liste des villes oubli d'un =>
J'ai encore un problème, lorsque je clique sur ok , ça ouvre une page de mon site !
ça ne me donne pas le CP ?
Avez-vous une idée ?

Merci...
Awaba
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 15:39
parce que tu as intégré je suppose ce code dans ta page

action="$_SERVER['PHP_SELF']" veut dire appelle le script appelant

donc la page s'appelle elle même c'est normal

et attention à l'initialisation des array
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 17:29
Alain,
Excuse moi mais je suis plus que débutante , alors pourrais-tu m'expliquer ce que je dois mettre après action et que signifie la remarque "attention à l'initialisation des array ?"
Vraiment merci, je pense que je suis prêt du but !!!
J'ose encore demander un petit coup de pouce, ensuite j'aimerais que l'utilisateur soit redirigé sur une page différente en fonction du CP, est-ce possible ?
Déjà merci pour toutes les précieuses aides que tu m'a apporté.
Bon week end
Awaba
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 17:33
donnes moi le nom de la page et le code de cette page dans laquelle tu as intégré le bout de code que je t'ai fait
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 17:46
voilà la page :
https://www.eglisejura.com/?p=317
En fait, j'ai copié ton code dans une page php que j'ai chargé dans l'interface du site.
Je ne sais pas si je suis très claire.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 18:05
et si tu mets dans
<form method="POST" action="?p=317">


ensuite pour ce que tu exposait plus haut

tu veux que selon la ville choisie on n'affiche pas le code postal mais qu'on ouvre une page différente en fonction du code postal ?
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 18:33
Super!!!!!!!!!!!! Vraiment merci....Seul je n'y serais pas arrivée ....
Juste un petit truc, parfois, lorsque je choisis une ville dans la liste déroulante, la réponse est bonne mais elle affiche ensuite une autre ville dans la liste ! J'aimerais que la ville choisie reste tant qu'un autre choix n'est fait !

Et j'aimerais enfin écrire la réponse mais que la réponse est un lien sur une autre page. Est-ce que je peux mettre mes liens dans le tableau array, si oui, quelle est la syntaxe ?

Je profite vraiment de tes compétences.... Merci pour tout !!!!

Awaba
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 18:47
Oui tu peux mettre tes liens dans un array

exemple:

$aray_liens=array("39600"=>"http://xxxxxxxxx",
"39100"=>"http://....",
etc..

donc en fonction du code postal tu peux aussi afficher un lien

pour le pb de ville qui reste selectionnée c'est du au fait que plusieurs villes ont le même numéro dans l'array $CP_...

alors modifies ainsi:

<?php
//initialisation des array
$liste_CP=array(
"1"=>"39000",
"2"=>"39100",
"3"=>"39200"
);

$CP_par_ville=array(
"dole"=>"2",
"lons"=>"1",
"saint-claude"=>"3",
"Lavans"=>"3"
);

//le script s'appelle lui meme donc on va recuperer la ville qd on a envoye la page
if(isset($_POST['ville'])){$ville=$_POST['ville'];}else{$ville="";}

?>
<form method="POST" action="?p=317">
J'habite &agrave;: <br />
<select name="ville">
<?php
foreach($CP_par_ville as $cle=>$value){
	//pour creer la liste on parcours l'array des villes,  $cle contient le nom de la ville, $value son num correspondant 1 , 2 ,3 
	$option= "<option value=\"".$cle."\"";
	if($ville==$value){ $option.="selected"; } //ça c'est pour conserver la selection au reaffichage de la page
	$option.=">".$cle."</option>";
	echo $option;
}
?>
</select><br /><br />
<input name="envoyer" type="submit" value="Envoyer">
</form>

<?php
if(isset($_POST['envoyer'])){
//on ne peux afficher ça que qd on a clique sur envoyer
	echo "Votre code postal: ".$liste_CP[$CP_par_ville[$ville]] ;
}
?> 

0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 19:18
En fait, cette fois, après avoir fait envoyer , la liste revient sur la première ville de la liste.

Pour le tableau des liens,une fois que je l'ai rempli, je ne vois pas où je fais appelle au tableau.

Il n'y a qu'un mot en français pour dire : Merci, alors je pourrais le dire en wolof : Dierediev !

Awaba
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 janv. 2009 à 20:30
excuses j'ai fait une petite erreur

mets comme ça:

foreach($CP_par_ville as $cle=>$value){
	//pour creer la liste on parcours l'array des villes,  $cle contient le nom de la ville, $value son num correspondant 1 , 2 ,3 
	$option= "<option value=\"".$cle."\"";
	if($ville==$cle){ $option.="selected"; } //ça c'est pour conserver la selection au reaffichage de la page
	$option.=">".$cle."</option>\n";
	echo $option;
}


pour le lien:

if(isset($_POST['envoyer'])){
//on ne peux afficher ça que qd on a clique sur envoyer
	$code_postal=$liste_CP[$CP_par_ville[$ville]];
	echo "Votre code postal: ".$code_postal."<br />";
	//si ton array s'appelle $array_cp_lien
	echo "Pour continuer <a href=\"".$array_cp_lien[$code_postal]."\">cliquer içi</a>";
}
0
awaba Messages postés 32 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 22 mars 2010
24 janv. 2009 à 20:46
Eh bien, bravo à toi !!!
Tu m'as permis de réaliser ce que je cherchais. Je vais pouvoir continuer ...
Un grand MERCI.
Peut-être à une autre fois sur le forum.
Bonne soirée et bon dimanche.
Awaba
0