如何在wordpress中发送ajax请求而不显示零
我试图将ajax请求发送到wordpress中的另一个php页面。 但每次它返回零与其他结果。我需要删除零。 我试过die(); 删除零。 但在调用此function后,整个屏幕变为空白。 我的代码如下,
jQuery的,
function key_press(){ jQuery.ajax({ url : 'admin-ajax.php', type : 'POST', data : jQuery('[name="ans_name"]').serialize() }).done(function(result) { // ta da //alert("success"); jQuery("#widget_poll_id").html(result); }); }
PHP,
add_action( 'wp_ajax_nopriv_'.$_POST['ans_name'], 'my_ajax' ); add_action( 'wp_ajax_'.$_POST['ans_name'], 'my_ajax' ); function my_ajax() { echo $_POST['ans_name']; die(); }
我怎么能摆脱这种情况?
这是因为你的行为没有被召唤。
您需要声明属性action
如下,以便WP知道要调用的操作。
在您的特定情况下,您还必须声明ans_name
(而不是data
),以便$_POST['ans_name']
存在。 我猜你希望在你的钩子名称中使用$_POST['ans_name']
这一事实多次调用这个AJAX请求。 如果不是这种情况,我建议你使用静态的东西,因为当你不想要它时,可以在其他请求期间调用钩子。
最后,我使用WP AJAX处理程序对您的代码进行了改进,这将确保包含AJAX请求期间可能需要的所有WP优点。
add_action( 'wp_ajax_nopriv_'.$_POST['ans_name'], 'my_ajax' ); add_action( 'wp_ajax_'.$_POST['ans_name'], 'my_ajax' ); function my_ajax(){ echo $_POST['ans_name']; die(); // Required for a proper WordPress AJAX result }
加成
要确保正确处理未登录用户的AJAX请求( nopriv
挂钩),请将其添加到functions.php
文件中。