我正在尝试在wordpress中获取ajax请求的结果,但是在javascript的警报框中却获得了“ 0”的结果,因此该表单如下所示:
<form class="form" id="ajax-contact-form" action="#"> <input type="text" name="name" id="name" placeholder="Name" required=""> <button type="submit" class="btn">Submit</button> </form>
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’],它不起作用。
非常感谢
尝试这样的操作,您没有name在PHP contact_form函数中添加期望的参数,因此必须将其添加到datajQuery ajax函数调用中的属性。
name
contact_form
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 } }); });