a***@gmail.com
2009-06-05 08:14:50 UTC
Bonjour,
je rencontre un problème bizarre lors de la récupération d'une page
php via une requête ajax (faite via JQuery).
J'ai un formulaire html très simple :
<form method="post" action="add_group.php" id="add_group">
<input type="text" name="group_name" id="group_name" value="nom du
groupe" />
<input type="submit" name="submit_group" value="créer" />
</form>
Je modifie ce formulaire grâce à JQuery afin de lui rajouter un champ
caché dataType = "JSON".
De cette manière, la page php add_group.php sait qu'elle doit encoder
le résultat au format JSON avant de le transmettre.
Ma page add_group.php correspond à:
<?php
...
if ($_POST['dataType'] == 'JSON') echo json_encode(array
('is_group_added'=>$is_created));
else {
echo "le groupe '".$group->name."' ";
echo ($is_created)? "a bien été créé" : "n'a pas été créé";
}
?>
J'ai fait plusieurs tests et il s'est révélé que ce qui pose problème
est la condition if ($_POST['dataType'] == 'JSON'){} else{}
Lorsque je supprime cette condition, le retour json_encode() est bien
interprété.
Lorsque j'utilise ce test, le retour fait une erreur 'parseError'
Je ne vois pas ce qui change entre :
if ($_POST['dataType'] == 'JSON') echo json_encode(array
('is_group_added'=>$is_created));
et
echo json_encode(array('is_group_added'=>$is_created));
Pourquoi le retour du 1er n'est-il pas interprété correctement ?!
D'avance, merci pour votre aide.
Arnaud
je rencontre un problème bizarre lors de la récupération d'une page
php via une requête ajax (faite via JQuery).
J'ai un formulaire html très simple :
<form method="post" action="add_group.php" id="add_group">
<input type="text" name="group_name" id="group_name" value="nom du
groupe" />
<input type="submit" name="submit_group" value="créer" />
</form>
Je modifie ce formulaire grâce à JQuery afin de lui rajouter un champ
caché dataType = "JSON".
De cette manière, la page php add_group.php sait qu'elle doit encoder
le résultat au format JSON avant de le transmettre.
Ma page add_group.php correspond à:
<?php
...
if ($_POST['dataType'] == 'JSON') echo json_encode(array
('is_group_added'=>$is_created));
else {
echo "le groupe '".$group->name."' ";
echo ($is_created)? "a bien été créé" : "n'a pas été créé";
}
?>
J'ai fait plusieurs tests et il s'est révélé que ce qui pose problème
est la condition if ($_POST['dataType'] == 'JSON'){} else{}
Lorsque je supprime cette condition, le retour json_encode() est bien
interprété.
Lorsque j'utilise ce test, le retour fait une erreur 'parseError'
Je ne vois pas ce qui change entre :
if ($_POST['dataType'] == 'JSON') echo json_encode(array
('is_group_added'=>$is_created));
et
echo json_encode(array('is_group_added'=>$is_created));
Pourquoi le retour du 1er n'est-il pas interprété correctement ?!
D'avance, merci pour votre aide.
Arnaud