2010-04-26 9 views
1

J'ai quelques tableaux que je veux envoyer pour traiter avec PHP. En utilisant json2.js je vais stringifier les tableaux comme suit:Quel est le moyen le plus simple d'envoyer un tableau Javascript via JSON à PHP?

var JSONlinks = JSON.stringify(link_array); 
var JSONnotes = JSON.stringify(note_array); 

mais alors je suis confus. Dois-je utiliser un objet XMLHttpRequest? Y a-t-il un autre moyen? Si c'est le moyen le plus simple, quelqu'un pourrait-il s'il vous plaît juste partager l'instance la plus basique du code nécessaire pour envoyer à PHP où je peux alors utiliser le décodage JSON? Je pense que cela pourrait vraiment aider les autres à l'avenir. J'utilise actuellement Jquery et je sais qu'il existe de nombreuses options pour les frameworks et que chacun peut ou non faciliter ce processus. Si vous utilisez un framework dans votre réponse, veuillez indiquer pourquoi vous choisissez ce framework plutôt que simplement le javascript.

+1

Utilisez-vous un framework JavaScript? –

+0

J'utilise jQuery. En fait, je vais éditer le post pour refléter votre question. – dscher

Répondre

3

Vous pouvez envoyer l'objet de nombreuses façons de jQuery, la plupart en utilisant de manière flexible $.ajax:

$.ajax({ 
    type: 'POST', 
    url: my_url, 
    dataType: 'json', 
    data: JSONlinks, 
    success: function() { alert('success!') } 
}); 

Gardez à l'esprit :

L'objet doit être une paire clé/valeur. Si valeur est un tableau, jQuery sérialise valeurs multiples avec la même clé à savoir {foo: [ "bar1", "bar2"]} devient '& foo = bar1 & foo = bar2'.

Voir http://api.jquery.com/jQuery.ajax/

+0

Je n'arrive pas à faire fonctionner le code ci-dessus. Je suis sûr que je fais quelque chose de stupide mais je n'arrive pas à comprendre ce que c'est. Dois-je recevoir une alerte si je ne fais que transmettre les données à mon script PHP mais que je ne reçois rien? Je ne veux pas quelque chose en retour. Merci d'avoir répondu. – dscher

+0

@dscher - Vous pouvez omettre le rappel de succès si vous ne voulez rien récupérer. Vous devriez probablement utiliser firebug pour vérifier que la requête passe bien. – karim79

+0

Merci, une erreur 403 ... pense que mon framework m'empêche de publier ces données sur le contrôleur de Kohana. C'est certainement le problème. Je suis nouveau sur jQuery et javascript, donc je n'ai même pas pensé à utiliser Firebug pour résoudre les problèmes. Bon conseil pour ce débutant! – dscher

2

Like this:

$.post('path/file.php', 
    { links: link_array, notes: note_array }, 
    function(response) { ... } 
); 
+0

@Slaks, merci. Je sais que c'est un raccourci pour ce que @karim a posté. Upvoted vous pour cela. – dscher

Questions connexes