Bonsoir,
J'ai actuellement un souci pour passer des valeurs avec XMLHTTPRequest vers un fichier php.
En bref, les variables qui contiennent plusieurs fois le caractères '&' provoquent une "rupture".
J'utilise la fonction javascript suivante :
et j'envoie mes variables de cette manière :
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
22
23 function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject) { // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr }
Tel que c'est écrit, le script pense que tati est une deuxième variable à envoyer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var xhr = getXhr(); xhr.open("POST", "mon_fichier_php.php",true); xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); xhr.send("ma_variable=toto&tati");
J'ai donc utiliser la fonction javascript escape() pour pallier à ce problème mais voilà j'ai ensuite rencontrer un autre problème qui est en fait mon véritable problème.
Lorsque qu'une variable à envoyer contient le caractère '+', mon fichier php récupère ' ' à la place du caractère '+'.
Par exemple pour :
mon fichier php récupère :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var ma_variable = "toto+tati"; xhr.send(escape(ma_variable));
Voilà donc ça pose réellement un problème. Si vous pouvez m'éclaircir s'il vous plait je vous remercie d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 echo $_POST['ma_variable']; // affiche 'toto tati' au lieu de 'toto+tati'
Partager