在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); } });
})