如何检索 AJAX 实时搜索生成的值


How to Retrieve Values Resulting From AJAX Live Search?

下面是一个jQuery函数,它检索2个文本框值并将它们发布到另一个文件("学生搜索结果.php"(,在那里使用这些值运行实时搜索。

<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 脚本("学生搜索结果.php"(。

<?php
include "Connection.php";
    if(isset($_POST['query'])){
        $searchData = explode('?????', $_POST['query']);
        $teamName = $searchData[0];
        $teacher = $searchData[1];
        $query = "SELECT club_table.Club_Name, teacher_user_table.Teacher_Name
            FROM club_table, teacher_user_table
            WHERE club_table.Teacher_Email = teacher_user_table.Teacher_Email,
            teacher_user_table.Teacher_Name LIKE '%" . $teacher . "%', 
            club_table.Club_Name LIKE '%" . $teamName . "%';";
    }else{
     $query = "SELECT club_table.Club_Name, teacher_user_table.Teacher_Name
            FROM club_table, teacher_user_table
            WHERE club_table.Teacher_Email = teacher_user_table.Teacher_Email;";
    }
     $result = mysqli_query($con, $query);   
     echo $query;
?>

如何将 PHP 脚本(例如 $result(中的变量带到第一页,以便创建结果表?简单地包含 PHP 文件是行不通的,因为该文件只包含一次。

谢谢你的时间。

最好的选择是使用json_encode序列化为JSON

我认为你能做的最好的事情是,

   success: function(result) {
            alert(result);
        }

Student Search Results.php以表格格式打印结果。

附言:请遵循正确的文件命名约定

使用正确的URL,并发送数据(并停止对所有内容使用驼峰(:

$(".search").on('keyup', function() {
    var data = {
         team_name : $('#TeamName').val(),
         teacher   : $('#Teacher').val()
    }
    $.ajax({
        type: "POST",
        url: "student_search_results.php",
        data: data,
        cache: false
    }).done(function(result) {
        console.log(result);
    });
});

在PHP中,你必须实际将结果放入数组中并json_encode:

<?php
    include "Connection.php";
    $team_name = !empty( $_POST['team_name'] ) ? $_POST['team_name'] : null;
    $teacher   = !empty( $_POST['teacher'] ) ? $_POST['teacher'] : null;
    if ($team_name && $teacher) {
        $query = "SELECT club_table.Club_Name, teacher_user_table.Teacher_Name
            FROM club_table, teacher_user_table
            WHERE club_table.Teacher_Email = teacher_user_table.Teacher_Email,
            teacher_user_table.Teacher_Name LIKE '%" . $teacher . "%', 
            club_table.Club_Name LIKE '%" . $teamName . "%';";
    }else{
         $query = "SELECT club_table.Club_Name, teacher_user_table.Teacher_Name
            FROM club_table, teacher_user_table
            WHERE club_table.Teacher_Email = teacher_user_table.Teacher_Email;";
    }
    $result = mysqli_query($con, $query);   
    $data = $result->fetch_all( MYSQLI_ASSOC );
    echo json_encode( $data );
?>
<script>
    $(".search").keyup(function() {
        var Team_Name = $('#TeamName').val();
        var Teacher = $('#Teacher').val();
        var Search_Data = "Team_Name="+'Team_Name'&Teacher='+Teacher;
        $.ajax({
            type: "POST",
            url: "Student_Search_Results.php",
            data: Search_Data,
            cache: false,
            success: function(result) {
                $('$output').html(result);
            }
        });
    });
</script>

这是输出div

<div id="output"></div>

Student_Search_Results.php页面上获取

$tname = $_POST['Team_Name'];
$teacher = $_POST['Teacher'];

您的搜索查询和打印数据