Réception PHP d'un POST JSON Ajax
Résolu
Wundoz
-
Wundoz -
Wundoz -
Bonjour,
J'ai à nouveau un problème, enfin du moins, je ne parviens pas à me documenter sur la façons de faire ma demande.
En faite, d'une fonction JS, je fais un POST d'une donnée JSON vers une page 'connexion.php'
Jusque là, il me semble que cela fonctionne. Mon problème vient de la réception de celui-ci sur la page connexion.php.
Je ne sais absolument pas comment m'y prendre, j'ai vue de nombreuse document, ils disent d'utiliser "$value = $_POST['result'];" ou bien de faire
Cependant, rien ne fonctionne :/
Bonne journée, merci
J'ai à nouveau un problème, enfin du moins, je ne parviens pas à me documenter sur la façons de faire ma demande.
En faite, d'une fonction JS, je fais un POST d'une donnée JSON vers une page 'connexion.php'
var result = {
user: usernameResult,
pass: passwordResult
}
$.ajax({
type: "POST",
url: 'views/connexion.php',
data: result,
success: window.location.href = 'views/connexion.php',
dataType: 'json'
});
window.location('views/connexion.php');
Jusque là, il me semble que cela fonctionne. Mon problème vient de la réception de celui-ci sur la page connexion.php.
Je ne sais absolument pas comment m'y prendre, j'ai vue de nombreuse document, ils disent d'utiliser "$value = $_POST['result'];" ou bien de faire
$value = json_decode(file_get_contents('php://input'));
echo $value;
Cependant, rien ne fonctionne :/
Bonne journée, merci
2 réponses
-
Bonjour,
Pour commencer, remplaces ton fichier views/connexion.php par le code suivant :<?php $result = array(); //recuperation propre des variables $user = !empty($_POST['user']) ? $_POST['user'] : NULL; $pass= !empty($_POST['pass']) ? $_POST['pass'] : NULL; //traitement if($user && $pass){ $result = array("result"=>"ok","user"=>$user,"pass"=>$pass); }else{ $result = array("result"=>"KO","post"=>$_POST); } //renvoi du resultat au format json echo json_encode($result); ?>
Ensuite.. pense à regarder dans la CONSOLE de ton navigateur les éventuelles erreurs.
(de préférence via la console de firefox (via firebug par exemple ))
-
-
-
-
Mais non... C'est pas dans la console, j'ai dis elle est vide. C'est en fonction de ton code,
if($user && $pass){
$result = array("result"=>"ok","user"=>$user,"pass"=>$pass);
}else{
$result = array("result"=>"KO","post"=>$_POST);
}
Ma page contient "KO", donc mes $_POST['user'] semblent être vide.
Et les redirections me permettent d'aller sur la page connexion.php qui traite les informations JSON envoyé en POST grâce à AJAX depuis indexCtrl.js donc de voir si il y a une réponse 'OK' ou 'KO'
Ce n'est pas ça la cause du soucis.. -
-
-
Dis donc .... quand tu dis que tu le vois sur ta page ..... ce n'est pas sur ta page connexion que tu dois regarder....
Normal qu'il n'y ait rien ... puisque c'est le JAVASCRIPT qui est sensé faire appel à cette page et lui envoyer les données...
Donc dans ta page (celle qui contient ton code ajax javascript) remplaces ton code actuelvar result = { user: usernameResult, pass: passwordResult } $.ajax({ type: "POST", url: 'views/connexion.php', data: result, success: window.location.href = 'views/connexion.php', dataType: 'json' }); window.location('views/connexion.php');
par celui-la et dis moi ce qui s'affche dans la console.var datas = {user: usernameResult,pass: passwordResult}; $.ajax({ type: "POST", url: 'views/connexion.php', data: datas, dataType: 'json', success: function(reponse){ console.log(reponse); //window.location('views/connexion.php'); //le temps des tests on désactive cette redirection }, error:function(jqXHR, textStatus){ console.log('error :' + textStatus + ' : ' + jqXHR.responseText); alert('Erreur ' + jqXHR.responseText ); } });
NB: Tu noteras que j'ai désactivé la redirection pour être bien sûr de pouvoir lire la console lors de l'appel à la fonction !
NB² : Tu utilises GoogleChrome... hors, si tu n'installes pas un widget special pour crhome.. tu ne verras pas les appels ajax.
Donc soit tu installes : https://chrome.google.com/webstore/detail/ajax-debugger/lgfefckpdealogpcfjdhinecfbcgedam
Soit ..(et perso même avec le plugin.. je préfère quand même ) utiliser la console de FIREFOX.-
Je viens de penser à un truc....
Tu peux me dire à quoi ça te sert de faire une requête ajax vers ta page de connexion.... si par la suite tu veux rediriger vers cette page ??????
C'est comme si tu envoyais un mail à une personne et qu'en plus tu te rends chez lui pour lui dire ce que tu lui à écris dans ton mail............ -
-