【发布时间】:2013-09-17 15:13:41
【问题描述】:
我试图在 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'] 还是不行。
非常感谢,
【问题讨论】:
-
除了操作之外,您没有向服务器发送任何数据
-
这行不通,您正在尝试访问尚未提交的已发布值
-
我建议你看看这个插件jquery.malsup.com/form
-
出于安全原因,您还应该包含一个 nonce 字段 - codex.wordpress.org/Function_Reference/wp_nonce_field