已解决问题
问题似乎与浏览器有关。尝试使用其他系统 而且效果很好。
我正在编码一个实时搜索,以使用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
的文件时,是否需要做些事情?
答案 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}
。
希望它会起作用。