Bonjour à tous,
N'ayant plus de cheveux à m'arracher, je viens vers vous en dernier recours.
Voila j'ai un souci lors du passage de chaîne de caractéres spéciaux (intra-PHP) et via AJAX.
Premier probléme :
Lors d'un appel d'une DIV via AJAX:
- je passe en paramétre une chaîne de caractéres avec un " ' ", la chaine se coupe au niveau du " ' "
- Je passe en paramétre une chaîne de caractéres avec un " " ", j'obtiens une erreur => missing ) after argument list <= Normal vu que le " est un caractére délimiteur de chaîne.
Voici l'appel :
Le htmlentities est le seul moyen de bien afficher mes caractéres spéciaux correctement dans ma div appele.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 aja.ajoutOption(\"caraVal\",\"".htmlentities($col[$i],ENT_QUOTES)."\"); aja.ajoutOption(\"cara\",\"".mySql_field_name($resultat,$i)."\");
J'ai essayé les utf8_decode, encode et stripslashes mais rien n'y fait.
Deuxiéme probléme tout aussi marrant :
Je créé une liste déroulante et je compare chaque valeur à une valeur pour savoir quelle option doit être mis à "selected" mais avec les caractéres accentués la comparaison ne fonctionne pas, et sans caractéres spéciaux, cela fonctionne.
Mon appel à fonction :
Ma fonction (Je ne met que affOption, les autres servant à rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $id="id".$_GET['tableVal']; $formChg->affSelect("textChg",'',''); $formChg->affOption($id.",".$_GET['cara'],$_GET['tableVal'],stripslashes(utf8_decode($_GET['caraVal'])),'O'); $formChg->closeSelect();
Alors la variable $var s'affiche correctement à l'écran, lorsque je rajoute la variable $defSelect à l'affichage, celle-ci s'affiche bien aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public function affOption($type,$table,$defSelect,$idPlusNom){ $requete = "SELECT DISTINCT $type from $table order by $type "; $resultat=connection::execute($requete); print("<option value=''>-------</option>"); while($col = mySql_fetch_array($resultat)){ if($col[1]<>""){ $var=htmlentities(utf8_decode($col[1])); }else{ $var=htmlentities(utf8_decode($col[0])); } if($var!=""){ print("<option value='".$col[0]."/".$var."'"); } if($var==$defSelect){ print(" selected "); } print(">".$var."</option>"); } mySQL_free_result($resultat); }
Je ne comprends pas
Je vous remercie par avance si vous avez des pistes pour m'aider
P.S : Mes données sont en UTF8 en base
Partager