我正在学习WordPress中的Ajax并参考一些教程。现在我使用名称字段的简单形式制作了这个Ajax脚本。我在header.php文件中调用此脚本。实施后我得到了0
。为什么以及如何解决它。有人可以指导我为什么会发生这种情况。
我的代码:
<script type="text/javascript">
jQuery('#newCustomerForm').submit(ajaxSubmit);
function ajaxSubmit(){
var newCustomerForm = jQuery(this).serialize();
$.ajax({
type:"POST",
url: "http://localhost/woocommerce/wp-admin/admin-ajax.php",
data: newCustomerForm,
success:function(data){
$("#feedback").html(data);
},
error: function(errorThrown){
alert(errorThrown);
}
});
return false;
}
如果有人指导我,我将不胜感激:)
感谢。
答案 0 :(得分:1)
将此添加到您的ajax调用
action : 'search_action',
url: "http://localhost/woocommerce/wp-admin/admin-ajax.php",
data: newCustomerForm,
如果ajax请求进入,则需要一个函数whitch将被wordpress调用:
function ajax_handler() {
$response = array( 'status' => 'error' );
// do your thing here
// $_POST is available
// and and something like $response['text'] = 'all done'; or so
$response['status'] = 'success';
header( 'Content: application/json' );
echo json_encode( $response );
die;
}
add_action( 'wp_ajax_search_action', 'ajax_handler' );
add_action( 'wp_ajax_nopriv_search_action', 'ajax_handler' );
您可以看到为登录用户调用了一个操作,而未登录用户调用了一个操作(wp_ajax_nopriv_search_action)。在这种情况下,这两个动作调用相同的函数。
在这里阅读更多内容: http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/
答案 1 :(得分:0)
将所有jQuery
替换为$
更新: 您还没有将所有jQuery更改为$! 变化:
jQuery('#newCustomerForm').submit(ajaxSubmit);
function ajaxSubmit(){
var newCustomerForm = jQuery(this).serialize();
为:
$('#newCustomerForm').submit(ajaxSubmit);
function ajaxSubmit(){
var newCustomerForm = $(this).serialize();