【发布时间】:2016-07-25 15:44:55
【问题描述】:
我是 ajax 世界的初学者,尝试使用 $.ajax() 函数从 php 页面调用内容,但代码无法执行。我使用的html页面:
<!DOCTYPE html>
<html>
<head>
<title>AJAX</title>
</head>
<body>
<div >
<input type="text" name="search" id="search">
<br>
<br>
<h2 id="result"></h2>
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<script src="js/script.js"></script>
</body>
</html>
我在 script.js 中使用的 JQuery 代码:
$(document).ready(function() {
$('#search').keyup(function () {
var search = $('#search').val();
$.ajax({
url:'search.php',
//the page to which the request will go to
data:{search: search},
type: 'POST',
success:function(data) {
if(!data.error){
$('#result').html(data);//the h2 we want to echo it uing the ajax
}
}
});
});
});
search.php 页面包含:
$search = $_POST['search'];
echo $search;
代码未执行。我该怎么办。
【问题讨论】:
-
哪些代码没有被执行? JS? php?做了任何基本的调试,比如检查keyup是否触发过?检查您的网络服务器的日志以查看是否有请求到达服务器?
-
什么不工作?
keyup事件没有触发吗?请求是否收到错误响应代码? PHP 脚本是否以某种方式失败? -
当我在输入中输入时,输入中输入的值未打印在空 h2 元素 @Marc B & @ CollinD 4
-
data.error不存在。您正在返回一个简单的字符串。不是 json,即使你返回 json,也没有告诉 jquery.ajax() 到 EXPECT json。 -
试试
if (data != "")或其他什么。