小编典典

在Wordpress中使用Ajax提交表单

ajax

我正在尝试在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’],它不起作用。

非常感谢


阅读 476

收藏
2020-07-26

共1个答案

小编典典

尝试这样的操作,您没有name在PHP contact_form函数中添加期望的参数,因此必须将其添加到datajQuery
ajax函数调用中的属性。

$('#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

        }
    });

});
2020-07-26