[AJAX] AJAX PHP POST Impossible de récupérer la valeur de mon POST
Bonjour à tous,
Après de longues heures à parcourir le forum pour de multiples raisons, j'ai décidé de franchir le pas de l'inscription... Et ce n'est pas pour la raison que j'aurais préféré... J'ai un problème que je n'arrive pas à résoudre...
Celui-ci est semblable au problème rencontré ici:
http://www.developpez.net/forums/d46...-denvous-post/
J'essaye de récupérer ma variable postée, qui apparait bien dans Firebug mais un isset($_POST['maVariable']) n'est jamais vrai.
Voici mon code:
Le but du script est de remplir un select "ville" en fonction du contenu d'un input "cp". J'utilise donc pour faire des tests un appel de ma fonction javascript sur l'évenement onblur de l'input "cp":
Code:
<input type="text" id="cp" name="cp" value="<?php if (isset($cp)) echo $cp; ?>" style="width:60px;" onblur="this.className='normal'; get_ville();" onfocus="this.className='focus';" />
Ma fonction get_ville (la vérification est pour l'instant très simplifiée pour la phase de test):
Code:
1 2 3 4 5 6 7 8 9 10
| function get_ville() {
if (document.getElementById('cp').value.length == 5) {
var cp = document.getElementById('cp').value;
return !sendCp(
'POST',
'nav.php?p=informations',
'cp='+cp);
} else
alert('Code postal non valide');
} |
La fonction "sendCp" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function sendCp(method, url, data) {
var xmlhttp = getHTTPObject();
if (!xmlhttp) {
return false;
}
if(method == "GET") {
if(data == 'null') {
xmlhttp.open("GET", url, true);
} else {
xmlhttp.open("GET", url+"&"+data, true);
}
xmlhttp.send(null);
} else if(method == "POST") {
xmlhttp.open("POST", url, true);
xmlhttp.onreadystatechange = statutChangeCp;
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send(data);
}
return true;
} |
Et enfin la fonction "statutChangeCp":
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| function statutChangeCp() {
if (xmlhttp.readyState == 1) {
document.getElementById("vcp").innerHTML = "<img src='images/loader_circ.gif' width='15' height='15' alt='Veuillez patienter...' />";
} else if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
try {
xmlDoc = xmlhttp.responseXML;
document.getElementById("vcp").innerHTML = "";
}
catch (e) {
alert("Erreur lors de la lecture de la réponse: " + e.toString());
}
}
} |
Le post est d'apres firebug bien passé mais ma variable php $_POST['cp'] reste toujours vide et n'est d'ailleurs pas définie. Mon readyState passe bien à 4 aussi. Le traitement est donc complet et sans erreur. Pourtant je dois bien en faire une...
Malheureusement, mon 'Content-type','application/x-www-form-urlencoded' est je pense correct donc mon erreur n'est, je pense, pas la même que dans le message indiqué plus haut.
Note: Si je soumet le formulaire par le bouton submit tout fonctionne mais le but est évidemment de ne pas resoumettre la page.
Je suis désespérément à la recherche d'une piste ou même, d'une solution :p
Merci de m'avoir lu.