2011-03-03 4 views
0

J'utilise Wordpress, PHP, jQuery et AJAX.jQuery AJAX - recevoir plusieurs données

Je peux obtenir des données de PHP à travers un appel AJAX, comme ceci:

$.ajax({ 
    type: "POST", 
    url: "<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1", 
    data: "action=load&type=part", 
    success: function(data){ 
     alert(data); 
    } 
}); 

Quand j'ai reçu les données que je veux aussi savoir comment ça se passait. Les "données" contiennent du HTML et je veux aussi des codes d'erreur comme "succès" ou "non-trouvé".

Comment le résoudre de la meilleure façon?

Wordpress

Parce que j'utilise Wordpress Je dois appeler un déclencheur AJAX (dans l'URL). Si je pouvais garder ça intact, ce serait bien.

Répondre

1
$.ajax({ 
    type: "POST", 
    url: "<?php echo get_bloginfo('url'); ?>/?addmod_ajax=1", 
    data: "action=load&type=part", 
    success: function(data){ 
     alert(data); 
    }, 
    failure: function(){ 
     alert('failed'); 
    } 
}); 

Vous pouvez ajouter un gestionnaire d'échec pour voir si la demande ajax est échoué, mais à part ça, si vous voulez une valeur de retour différent, vous devrez changer le résultat de la fonction que vous appelez sur le back-end ou créez une nouvelle fonction similaire qui, au lieu de renvoyer simplement le code HTML, renvoie un tableau codé json avec le premier élément trouvé ou non trouvé, et le second élément étant le html.

Éditer: Commentaire ajouté pour compléter la réponse et le code de format.

à l'endroit où vous l'écho de votre résultat ", vous pouvez faire écho à la place

json_encode(array('success'=>true,'html'=>$yourData)); 

et dans votre appel ajax, ajoutez

dataType:'json' 

alors vous pouvez accéder aux valeurs de réussite et html dans votre gestionnaire de succès.

+0

Est-il possible d'utiliser jSON et de garder mon "url" comme il est maintenant? Si vous savez comment c'est fait, n'hésitez pas à mettre à jour votre message avec. Merci à ce jour! –

+0

@Jens - Oui, savez-vous où est la fonction du côté PHP que vous appelez? – Orbit

+0

Où? Si vous voulez dire une URL, c'est ici http: // localhost/concepts/addmod /? Ajax_trigger = 1. Si vous voulez dire une fonction, elle pourrait appeler ... function load_part() {echo 'Mon résultat'; } –

0

Je retourne généralement un tableau ou dict avec une valeur désignée comme l'état. Ces exemples peuvent ne pas être les meilleurs (les autorisations refusées et les erreurs d'analyse peuvent être gérées sur le frontal). Toujours le concept est solide.

Questions connexes