Ajax调用成功,但是$ _POST ['value']为空

时间:2019-03-12 08:20:07

标签: javascript php ajax

已解决问题

  

问题似乎与浏览器有关。尝试使用其他系统   而且效果很好。

我正在编码一个实时搜索,以使用ajax和php显示数据库中用户的详细信息。来自表单字段的输入已正确传递到ajax文件。我检查了console.log()并正确打印。之后,Ajax调用将发生,而不会发生任何错误。但是,当试图回显$ _POST ['search']时,它正在打印空白空间。

searchform.php

<input type="text" placeholder="Search" class="search"/>
<div class="search-result"></div>

search.js

    $(function(){
    $('.search').keyup(function(){
        var search = $(this).val();
        //console.log(search);
        $.ajax({
            url:'search.php',
            data:{search:search,},
            type:'POST',
            success:function(data){
                console.log(data);
                $('.search-result').html(data);
            },
            error:function(){
                console.log("error");
            }
        });
    });
});

search.php

 <?php

include('core/init.php');
echo $_POST['search'];

?>

已编辑

我发现了问题,但对原因没有任何了解,也没有找到解决方案。基本上是include('core/init.php');没有被包含在内。我尝试了var_dump(include('core/init.php'));,但返回的是bool(false)。路径正确。使用ajax调用带有includes的文件时,是否需要做些事情?

2 个答案:

答案 0 :(得分:1)

  

首先,您将此data:{search:search,}更改为此   data:{search:search}

     

第二,请尝试将您的echo中的search.php更改为此   echo json_encode($_POST['search']);

     

要进行更复杂的检查,您可以inspect element(从浏览器中按F12键),然后转到network   标签,然后在新标签中打开您的search.php文件。显示出您的期望   价值吗?

     

如果search.php显示了预期值,请尝试硬刷新   Windows(ctrl + F5)中的浏览器尝试更新您的js

答案 1 :(得分:-3)

此对象data:{search:search,}中没有多余的键/值对,因此不需要在末尾添加“,”。您应该只使用data:{search:search}

希望它会起作用。