【发布时间】:2016-10-18 18:57:28
【问题描述】:
好的,所以我有这段代码,它基本上可以在表 users 中找到用户并将其显示在警报中,但似乎我做错了什么。日志显示“功能未设置”并且警报本身会显示。
这是我的 HTML 表单
<center><form method='POST' >
<input id="search_fix" type="text" name="search" placeholder="Search..">
<input type="submit" name="submit_menu_search" style="display: none;">
</form></center>
这是ajax处理
$(document).ready(function() {
$("#search_fix").keyup(function() {
var search_text = $(this).val();
if(search_text != '') {
$.ajax({
url:"handler.php",
method:"POST",
data:{"function":"search_ajax", search:search_text},
dataType:"text",
success:function(data){
$('#search_result').html(data);
console.log(data);
alert(data);
}
});
}
else {
}
});
});
这些是我用来基本搜索术语的 PHP 函数
public function search_ajax($term) {
$handler = new sql();
$sql = $handler->connect();
$sql->real_escape_string($term);
$result = $sql->query("SELECT ime FROM users WHERE ime LIKE '%".$term."%'") or die (mysql_error());
if($result->num_rows >= 1){
while($row = $result->fetch_assoc()) {
echo $row['ime'];
}
}
}
if(isset($_POST['function'])) {
switch($_POST['function']) {
case "search_ajax": {
require_once "assembly/user.php";
$user = new User();
$user->search_ajax($_POST['search']);
break;
}
default: {
echo "Unknown AJAX function handler";
break;
}
}
}
else {
echo "Function is not set";
}
【问题讨论】:
-
您假设 ajax 请求将会成功。所以如果不是你不会知道,它看起来就像没有返回任何东西。
-
好吧,如果它不成功,它应该返回 echo "Function is not set";正确的?既然它现在回来了
-
检查浏览器控制台网络选项卡。也检查来自服务器
print_r($_POST)的发布数据 -
您的数据格式:{"function":"search_ajax", search:search_text} 错误。更多信息请参考here
-
根据 javascript 不会成功。在您的成功案例下,您要添加
, error: function (xhr, status, error) { alert(xhr.responseText); alert(status); alert(error); }
标签: javascript php jquery ajax