Bonjour,
Voila je rencontre un petit problème avec mon code.
Je veux envoyer les modification de l'ordre de mes menu en json mais je ne suis pas sur que je mis prend bien, voici le code ajax
$('#saved').click(function(){
var addinfo = $('#nestable-output').val();
$.ajax({
type: "POST",
url: "ordre.php",
data: {data:addinfo},
dataType:"json",
error:function(msg){
alert( "Error !: " + msg );
},
success:function(data){
alert('ok');
}});
Dans var addinfo les donnée ressemble a sa
[{"id":2},{"id":3,"children":[{"id":4},{"id":5}]},{"id":6}]
Je reçois l'erreur : Error !: [object Object]
J'ai rechercher et essayer plusieurs technique sur le web ... mais sa na pas fonctionner :/
Merci en avance
J'ai changer dataType par html et maintenant sa fonctionne ... bizzare!
Salut,
Je reçois l'erreur : Error !: [object Object]
A quel moment ? On est censé le deviner ?.. ;)
Salut. Il faut transformer ton objet en json. Utiliser JSON.stringify.
$('#saved').click(function(){
var addinfo = $('#nestable-output').val();
$.ajax({
type: "POST",
url: "ordre.php",
data: {data: JSON.stringify(addinfo)},
dataType:"json",
error:function(msg){
alert( "Error !: " + msg );
},
success:function(data){
alert('ok');
}
});
});
@betaWeb Ces quand j'appelle la fonction ajax ...
@sizo0 je le fait mais sa ne change rien :/
Salut,
Quand tu appelles directement ta page ordre.php
as-tu une erreur ? En forçant par exemple tes valeurs $_POST.
Ou bien as-tu une erreur dans ton débugueur dans l'ongler Network/Réseau ?
Quand j'appelle directement la page ordre.php il n'y a aucune erreur j'ai meme fait le teste en passant ce qui devrais passer et l'action ce fait.
C'est pas bizarre, ça veut juste dire que ton code php ne rendait pas du json mais de l'html.
D'après le stack d'erreurs, l'erreur se situait autour de la ligne 163 de admin.php.
En effet, c'était l'objet de ma prochaine question : que renvoie ordre.php
?
Si tu veux renvoyer du json, comme tu as l'air de le vouloir, il faudrait que tu retournes le résultat via un :
<?php
echo json_encode($data);
?>
Et idéalement changer le type de contenu via un header PHP (à insérer à la première ligne de ton ordre.php
):
<?php
header('Content-Type: application/json');
?>