如何检索AJAX Live Search产生的值?

时间:2013-12-01 15:26:40

标签: php jquery ajax

下面是一个jQuery函数,它检索2个文本框值并将它们发布到另一个文件(“Student Search Results.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文件不起作用,因为文件只包含一次。

感谢您的时间。

4 个答案:

答案 0 :(得分:0)

最佳选择是使用json_encode

序列化为JSON

答案 1 :(得分:0)

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

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

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

<强> P.S。 :请遵循正确的文件命名惯例

答案 2 :(得分:0)

使用正确的URL,然后发送数据(并停止使用camelcase):

$(".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 );
?>

答案 3 :(得分:0)

<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'];
  

//您的搜索查询&amp;打印数据