Page 1 sur 1

probleme de guillemets/apostrophes

Posté : 20 juin 2006, 17:18
par logone
Salut,

Je suis confronte a un probleme de cote en passage de variable et je n'arrive pas a trouver le resultat.

Voici mon probleme

j'ai un formulaire

Code : Tout sélectionner

<select name="contact_dep" size="1" id="contact_dep"> <option value="selected">--S&eacute;lectionnez--</option> <option value="01 - Ain">01 - Ain</option> <option value="02 - Aisne">02 - Aisne</option> ..... <option value="22 - C&ocirc;tes d'Armor">22 - C&ocirc;tes d'Armor</option>
que je renvoi vers une page dans cette page j'ai le code suivant

Code : Tout sélectionner

$dep_var = $HTTP_POST_VARS['contact_dep']; $dep1 = "01 - Ain"; $dep2 = "02 - Aisne"; $dep3 = "03 - Allier"; ... $dep22 = "21 - C&ocirc;te-d'Or"; echo "<option value=''>--S&eacute;lectionnez--</option>"; for ($i=0; $i<99; $i++) { if ($dep_var=="${'dep'.$i}") {${'selection_dep'.$i}="SELECTED";} echo "<option value=\"${'dep'.$i}\" ${'selection_dep'.$i}>${'dep'.$i}</option>"; }
Mais ma valeur n'est jamais selectionnée
J'ai tester urlencode et stripslashes mais cela ne donne rien
en reflechissant je me dit que je pb peut venir de la

Code : Tout sélectionner

if ($dep_var=="${'dep'.$i}") {${'selection_dep'.$i}="SELECTED";} // car si je met la valeur de ma variable ca me donne if ($dep_var=="${'21 - C&ocirc;te-d'Or'.$i}") {${'selection_dep'.$i}="SELECTED";}
Je pense que c'est peut etre de la que viens mon probleme mais je n'arrive pas a le contourner
Tout fonctionne sauf les valeurs avec des ' biensur

Merci de votre aide

Posté : 20 juin 2006, 17:20
par Orni
Tu pars déjà sur de mauvaises base en utilisant ceci :
<select name="contact_dep" size="1" id="contact_dep">
<option value="selected">--S&eacute;lectionnez--</option>
<option value="01 - Ain">01 - Ain</option>
<option value="02 - Aisne">02 - Aisne</option>
.....
<option value="22 - C&ocirc;tes d'Armor">22 - C&ocirc;tes d'Armor</option> 
Il vaut mieux que tu crée quelque chose du genre :
<select name="contact_dep" size="1" id="contact_dep">
<option value="selected">--S&eacute;lectionnez--</option>
<option value="1">01 - Ain</option>
<option value="2">02 - Aisne</option>
.....
<option value="22">22 - C&ocirc;tes d'Armor</option> 

Posté : 20 juin 2006, 17:23
par logone
Merci pour ta reponse mais je pense que c'est faisable meme en indiquant les nom de departement dans la variable je pense a un probleme d'echappement.

Posté : 20 juin 2006, 17:30
par Orni
Oui, mais justement c'est problématique, la preuve, ça te gène dans ton traitement de données.

La meilleure solution est de mettre une valeur en entier, à partir de ça, aucun soucis.

Ensuite deux solutions, soit tu as tes départements dans une base de données, alors là c'est simple ( Id => Département ), soit tu as un tableau en dur ( $departements = array(); $departement[1] = "Ain"; )

Dans tes les cas c'est plus propre et plus facile à faire évoluer par la suite.

Posté : 20 juin 2006, 17:33
par logone
Tu as raison je vais opéré ainsi

Merci