|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
Bonjour à tous.
Voici mon problème: Je récupère une chaîne de caractère en POST, et cette chaîne me sert à définir l'index d'un tableau prédéfini. En effet, je créé au préalable un tableau avec toutes les valeurs possibles que je peux recevoir en POST pour faire correspondre ces valeurs avec les champs de ma table MySQL pour pouvoir ensuite établir ma requête. Mon problème est qu'une donnée que je reçoit contient le signe "+". Les chaînes avec accents ne me posent aucun soucis mais cette chaîne avec le signe "+" ne passe pas.. Voici l'erreur que j'obtiens : Citation:
Citation:
Si quelqu'un peut m'éclairer, merci d'avance |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour,
pour t'éclairer, je te conseille : - la bougie, - la lampe-torche, - le feu, - le soleil, - la plein lune, - ... Sinon, ... tu peux peut-être nous donner ton code (?). On y verra déjà plus clair.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#3 | ||
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
L'ironie est au rendez-vous à ce que je vois
Ce serait trop long pour le code.. Pour décrire l'algo : 1. Lorsque je clique sur un onglet dans ma page, une requête ajax est lancée, en transmettant l'attribut de l'onglet par POST à une page 2 (l'attribut est un string) 2. La page 2 récupère cet attribut. 3. Cet attribut me sert ensuite à définir le champ sur lequel je dois effectuer ma requête, grâce à un tableau des correspondances attribut<=>champ, comme ceci : Code :
Code :
$tableData= $bdd->query('SELECT Code_Produit, DESIGNATION, Mois, '.$onglet.' FROM PH_Photo_Stock_Depot ORDER BY Mois ASC'); Pourtant, les accents et autres passent bien.. C'est ça que je ne comprends pas. |
||
|
|
00
|
|
|
#4 | |
![]() ![]() |
1/ "donner ton code" signifie "donner le code nécessaire et suffisant pour situer et comprendre le problème".
2/ <pre><?php print_r($corresp); ?></pre> donne : Citation:
A quel endroit du code constates-tu le problème ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
|
00
|
|
|
#5 |
![]() ![]() |
Conseil : encadrer la requête par des ", et mettre toujours des '...' autour des chaines
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Cyril Ingénieur développement logiciels Inscription : avril 2007 Messages : 205 ![]() |
$title contient les données du $_POST je présume ?
Affiche ce qu'elle contient. Peut-être utiliser un urlencode() au niveau du post, et un urldecode() au niveau de la récupération. Le '+' est sûrement squeezé par ajax et la lib que tu utilises. Enfin, sans conviction, c'est une piste à creuser ... http://php.net/manual/en/function.urlencode.php http://php.net/manual/en/function.urldecode.php |
|
|
10
|
|
|
#7 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
1/ jreaux62 tu as mal compris. La chaîne de caractères de mon attribut ne va pas se retrouver dans ma requête, c'est sa correspondance qui va l'être (selon le tableau des correspondances). Il n'y a pas besoin de quotes à cet endroit de la requête car c'est un nom de champ qui va se trouver à cet endroit.
2/ Kaamo tu as raison, c'est lors du passage en POST par ajax que le + se perd. En effet, mon $title contient ma chaîne de caractères transmises en POST par ajax mais sans le signe "+". J'ai testé avec urlencode à l'entrée puis urldecode à la sortie, mais le + n'est toujours pas transmis.. |
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Développeur Web Inscription : mai 2011 Messages : 85 ![]() |
C'est bon j'y suis arrivé. Il fallait juste faire un urlencode sur la chaîne avant de l'envoyer en POST avec ajax. Ainsi, le '+' est présent quand je récupère la donnée par le biais de $_POST['donnée']. Pas besoin de urldecode pour récupérer la donnée à la sortie (bizarre?!)..
Merci beaucoup pour votre aide! A bientôt |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com