如何在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文件中。