Bonsoir,
Alors le problème est simple à comprendre :
- Une requête AJAX qui envoie dans ma page de traitement une donnée générée dynamiquement dans une balise cachée (hidden). Cette variable est bien initialisé et contient bien la valeur que je cherche à traiter.
- Une fois dans la page de traitement elle a disparu et ma variable $_POST['index'] dont l'index est identique à celui de ma requête AJAX n'est plus assignée et je me retrouve donc avec un "index undefined". Pour le coup ma requête SQL ne s'exécute pas correctement (?) quoique je face le retour de ma requête AJAX me renvoie sans cesse un résultat vide.
Pour y voir plus clair :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function getNumberLevel() { var plateauId = document.getElementById('id_P'); alert(plateauId.value); var xhr = getXMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { alert(xhr.responseText); return xhr.responseText; } }; xhr.open("POST","Recup_NumberLevel.php",true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); alert("id_P="+plateauId.value); xhr.send("id_P="+plateauId.value); }
Le alert dans mon callback ne renvoie rien et le return renvoie un foutu "undefined". Les autres montrent bien que ma valeur "plateauId.value" a été récupérée.
Ma page de traitement Recup_NumberLevel.php :
Code php : 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 <?php try { $bdd = new PDO('mysql:host=localhost;dbname=Antibio_Quizz', 'root', 'vegeta26', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $req = $bdd->query('SET NAMES UTF8'); $id = $_POST['id_P']; $req = $bdd->prepare("SELECT COUNT(*) AS nb FROM niveaux WHERE id_plateau = :id") or die(print_r($bdd->errorInfo())); $req->execute(array( 'id' => $id )); $res = $req->fetch(); echo $res['nb']; $req->closeCursor(); ?>
C'est rien de bien sorcier et pourtant...
Si vous avez des pistes ou voyez des erreurs (stupides forcément) que je n'aurai pas détecté....
(Si je le poste dans la partie PHP c'est surtout que j'imagine que le problème vient bel et bien de là, car jusqu'à l'envoie à ma page de traitement, tout se déroule bien du coté JS.)
Merci d'avance![]()
Partager