javascript - Wordpress Ajax 返回 '0'

标签 javascript php jquery ajax wordpress

我能找到很多类似的问题,但没有任何帮助,所以必须发布我自己的这个问题版本。

我有 2 个 php 文件:

  • playing.php(包含 Web 表单并发送 ajax 调用)
  • plug_search.php(有表单处理代码)

在我开始尝试使用 ajax 之前,表单处理工作完美,查询按预期工作,并根据搜索参数返回正确的结果。现在,我想使用 ajax,所以结果返回到同一页面并且它始终返回“0”。我尝试了(似乎)我能做的一切,排除了最可能的原因(不正确的函数/调用名称)——运气不好。感觉好像缺少了一些非常简单的东西,我怀疑问题出在函数的声明中,但看不出有什么问题(似乎调用从未到达 plug_search.php 中的处理函数)。我删除了所有查询代码,只是试图返回一个简单的字符串——仍然是“0”。 如果您能提供帮助,我将不胜感激!

play.php

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
   $(document).ready(function(){
      function search(){
         var plug=$("#autocomplete-dynamic").val();
         var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
         if(plug!==""){
            $("#result").html();
            $.ajax({
                type: "GET",
                url: ajaxurl,
                data: {
                    action: 'ajax_return_search_results',
                    plug: 'country'
                },
                success:function(data){
                   alert(data);
                }
            });
         }
      }

      $("#button").click(function(){
         search();
      });

      $('#search').keyup(function(e) {
         if(e.keyCode == 13) {
            search();
         }
      });
   });
 </script>

plug_search.php

<?php

add_action( 'wp_ajax_ajax_return_search_results', 'myajax_return_search_results' );
add_action( 'wp_ajax_nopriv_ajax_return_search_results', 'myajax_return_search_results' );

function myajax_return_search_results() {
   echo "Success";
   die();
}

?>

plug_search.php - 完整版

function myajax_return_search_results() {

$value = $_GET['plug'];
$value2 = $_GET['country'];

$sql = "SELECT name, image_url, amazon_url, plug_type FROM adapters_list WHERE plug_type = '$value' AND country LIKE '%$value2%'" or die("Error in the consult.." . mysqli_error($link));

$result = $link->query($sql);

while($row = mysqli_fetch_array($result)) { ?>
<div id="output-product" style="border: 1px solid #333; font-family: Helvetica, sans-serif; font-size: 20px;"><?php echo $row["name"] . "<br />";?>
<?php echo "</div>";

die();

最佳答案

将此代码添加到您的 functions.php

add_action( 'wp_ajax_ajax_return_search_results', 'myajax_return_search_results' );
add_action( 'wp_ajax_nopriv_ajax_return_search_results', 'myajax_return_search_results' );

function myajax_return_search_results() {
   echo "Success";
   die();
}

关于javascript - Wordpress Ajax 返回 '0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27287024/

相关文章:

php - MySQL DB 中的新行

javascript - 如何使用 Jquery 验证输入文本框中允许减号(-)且仅允许数字?

javascript - 使用翻译的动画粘性标题

javascript - XMLHttpRequest.responseXML 从 Ajax 到 .php 页面返回 NULL

php - Laravel 在 Blade 中获取文件扩展名

php - 无法在准备好的语句中比较来自 mysql 的值

javascript - jQuery 动态更新数据键和值

javascript - 使用 JQuery 更改选择/选项下拉列表中的现有值

javascript - 在任何地方通过 Twitter 获取 oauth_token 和 oauth_token secret

javascript - 隐藏特定时间的YouTube API元素