Bonsoir,
J'ai écris un script jQuery avec de l'ajax pour envoyer des données en bdd.
Mon code a l'air de bien fonctionner (vu que sur l'onglet Network de l'inspecteur Chrome j'ai un code http 200 et que je vois les datas envoyé)
Mais ma fonction callback me renvoit Error dans le console.log et donc (par logique) j'en ai déduis que c'était pour ça que mon var_dump en PHP m'affichait "NULL".
Ma question est donc qu'est ce qui ne va pas ?
Mon JS
$(document).ready(function(){
$("#submit_write").click(function(){
var title_writer = $(".title_writer").val();
var text_writer = $(".text_writer").val();
$.post(
'writer.php',
{
title_writer : $("#title_writer").val(),
text_writer : $("#text_writer").val()
},
function(data){
if(data == 'Success'){
$(location).attr('href',"");
} else {
console.log("Erreur");
}
},
'text'
);
});
});
PS : Au cas où ça viendrait de là, en PHP sur ma page où je suis censé faire le traitement j'utilise un petit code pour détecter si la personne est connecté, et si elle ne l'est pas elle se fait rediriger.. J'ai peur que cette condition ai une influence sur l'affichage de la data.. Mais j'en doute un peu.
ben tu attend que ton retour soit exactement egale a 'Success',
Normal que tu n'aille jamais dedans si tu met des var dump et du debug
La function(data) s'execute direcement quand ta requête est finit donc tu peux mettre directement le code à exécuter si tu ne dois pas vérifier le resultat du php.
petit cours pratique pour la suite.
en php fait un petit
$data = array(
'success' => true,
'data' => array(
'title_writer' => $_POST['title_writer'],
'text_writer' => $_POST['text_writer']
)
);
echo json_encode($data);
et dans ton JS, tu recevra un objet
function(data){
if(data.success){
console.log("Writer : " + data.data.title_writer);
} else {
console.log("Erreur");
}
},
Voici le code qui est censé afficher (pour tester) les valeurs récupéré :
$title_writer = $_POST['title_writer'];
$text_writer = $_POST['text_writer'];
var_dump($title_writer);
var_dump($text_writer);
Pas tout le code ^^ Le reste c'est juste un affichage de quelque erreurs et comme expliquer au dessus le code pour rediriger si l'user n'est pas connecté.
Comme le dit keulu à aucun moment tu n'affiche "Success" donc jquery ne va jamais faire ce qui est dit dans ta condition.
Ah ^^ Je l'avais oublié celui là xD
Alors comment tu ferais pour savoir si tout s'est bien passé ?
Dans ta condition en php tu fais un echo 'Success' et si tu n'affiches rien d'autre ça marchera.
Nan je parlais côté JS ^^, genre dire si l'état = success
un peu comme onreadystatechange ^^