web-dev-qa-db-fra.com

Utiliser ajax avec wordpress

J'essaie de comprendre les demandes ajax dans Wordpress et j'ai du mal à comprendre. En gros, j'ai un formulaire qui comporte un certain nombre d'étapes et vous parcourez ces demandes en utilisant ajax, en affichant les données à chaque fois, en masquant et en affichant la division pour les différentes étapes comportant généralement des champs de formulaire. Actuellement, un formulaire est exécuté dans un plugin avec un shortcode. Cela crée une requête ajax de la manière suivante:

function callAjaxsubmit() {
  $("#form").serialize();
  $.ajax({
     type: "POST",
     url: "/confirm.php",
     data: $("#confirm").serialize(),
     success: function(data) {
         $( ".page-error-message" ).remove();
         $("#step3").html(data); 
         $("#step2").empty(data);
         $('html, body').animate({ scrollTop: 0 }, 'slow');
     }
  });
  return false;
}

J'essaie de faire cela dans l'interface, j'ai regardé ceci: http://codex.wordpress.org/AJAX_in_Plugins et de nombreux tutoriels mais juste Je ne sais pas comment appliquer cela à cela. Je suppose que j'ai besoin d'appeler une fonction plutôt qu'une url?

Mise à jour: Eh bien, cela a maintenant déclenché la fonction, malgré des problèmes avec les données de publication. J'ai beaucoup de champs et avant que je ne fasse toe ajax de la bonne manière wordpress, j'utilisais serialize () pour obtenir toutes les données de formulaire, mais cela ne semble pas fonctionner correctement, il semble le sortir en une longue chaîne. Existe-t-il un moyen spécial de sérialiser () les données de publication?

Update2: a réglé le problème de sérialisation avec les éléments suivants:

var formData =  'action=wordpress_function&' + jQuery("#form").serialize();
  jQuery.ajax({
    type: "POST",
    url: MyAjax.ajaxurl,
    data: formData,
        success: function(data) {  
            //do stuff
        }
  });
  return false;
1
David

Dans Wordpress, Ajax fonctionne comme suit:

D'abord, vous enregistrez l'action ajax et la fonction que vous voulez utiliser pour la servir, bien sûr, vous devez écrire cette fonction.

Toutes les demandes vont à la même URL wp-admin/admin-ajax.php, ce qui change l'action, et en fonction de l'action, une fonction différente est appelée.

La fonction que vous appelez renvoie le résultat que vous obtenez comme réponse dans la demande ajax.

Si vous avez des doutes sur une étape, demandez simplement.

2
Tomás Cot