使用jQuery的AJAX实时搜索只运行一次
下面是用于运行实时搜索的脚本使用jQuery的AJAX实时搜索只运行一次,jquery,ajax,Jquery,Ajax,下面是用于运行实时搜索的脚本 <script> $(".search").keyup(function() { var Team_Name = $('#TeamName').val(); var Teacher = $('#Teacher').val(); var Search_Data = Team_Name + '?????' + Teacher; $.ajax({ type:
<script>
$(".search").keyup(function() {
var Team_Name = $('#TeamName').val();
var Teacher = $('#Teacher').val();
var Search_Data = Team_Name + '?????' + Teacher;
$.ajax({
type: "POST",
url: "Student Search Results.php",
data: {
query: Search_Data
},
cache: false,
success: function() {
alert('The values were sent');
}
});
});
</script>
<?php
include "Student Search Results.php";
?>
$(“.search”).keyup(函数(){
var Team_Name=$('#TeamName').val();
var Teacher=$('#Teacher').val();
var Search_Data=团队名称+'???'+教师;
$.ajax({
类型:“POST”,
url:“Student Search Results.php”,
数据:{
查询:搜索数据
},
cache:false,
成功:函数(){
警报(“已发送值”);
}
});
});
实时搜索功能正常,只是没有重复(只在页面首次加载时运行一次)。有什么想法可以解释为什么会这样吗?谢谢。您将静态过程与动态过程混为一谈<代码>最初将在服务器上运行,不会在该页面上再次执行。无论AJAX函数提交数据多少次,页面都不会更改,因为它很久以前就已经加载了 您需要做的是完全保留
include()
,并使用JSON或XML通过PHP文件直接回复到$.ajax()
函数中
然后,您可以使用jQuery/JS将数据解析为漂亮且有组织的内容
这里有更多的细节: 在PHP页面上,您将收听
$\u POST['query']
,并像往常一样运行函数。但是,您需要将该页面的标记部分与PHP执行分离,而不是以PHP页面现在的状态打印它
然后,您将获取该标记,并将其放在脚本下面当前所在的位置。要让jQuery按需更新此内容,请更改:
...
success: function() {
alert();
}
要按如下方式从PHP页面传递返回的数据:
...
success: function(data) {
var i = 0;
for (i in data) {
$('#searchResults').find('.resultNumber').append(i++);
$('#searchResults').find('.team-name').append(data.teamName);
$('#searchResults').find('.teacher').append(data.teacher);
}
}
下面是一个
和一些
和
等等。如果您稍后在我的代码中加载一些html内容,我将包括使用我发布的变量的php函数。最后的结果是一个表,所以是的,它是HTML内容。在firebug或chrome或Fiddler中的web developer tools行中检查数据和/或检查ajax请求有时ajax帖子将是200 ok,但响应是错误的。检查ajax中的错误。我有JSON数据类型的案例。尝试显式指定数据类型:“html”