在WordPress中使用ajax提交表单

我想在wordpress中获取ajax请求的结果,但是我在javascript的警告框中得到’0’的结果,所以表单看起来像这样:

javascript看起来像这样:

 $('#ajax-contact-form').submit(function(e){ $.ajax({ data: {action: 'contact_form'}, type: 'post', url: ajaxurl, success: function(data) { alert(data); // This prints '0', I want this to print whatever name the user inputs in the form. } }); }) 

和PHP:

 add_action('wp_ajax_contact_form', 'contact_form'); add_action('wp_ajax_nopriv_contact_form', 'contact_form'); function contact_form() { echo $_POST['name']; } 

有谁知道上面的代码是否正确,我也尝试过$ _REQUEST [‘name’]并且它不起作用。

非常感谢,

尝试这样的事情,你没有在PHP contact_form函数中添加你期望的name参数,所以你必须将它添加到jQuery ajax函数调用中的data属性中。

 $('#ajax-contact-form').submit(function(e){ var name = $("#name").val(); $.ajax({ data: {action: 'contact_form', name:name}, type: 'post', url: ajaxurl, success: function(data) { console.log(data); //should print out the name since you sent it along } }); }); 

您还应该在javascript中为name添加属性。

它可能看起来像这样……..

 $('#ajax-contact-form').submit(function(e){ $.ajax({ data: {action: 'contact_form', name:name}, type: 'post', url: ajaxurl, success: function(data) { alert(data); } }); 

})