Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery的AJAX实时搜索只运行一次_Jquery_Ajax - Fatal编程技术网

使用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”