PHP Ajax实时搜索无法加载

时间:2018-11-18 12:34:50

标签: php ajax

我正在分配作业进行ajax实时搜索。不幸的是,我遇到一个错误,说“未定义的索引= q”。

这是我的jquery:

<script>
$(document).ready(function(e){
        $("#search").keyup(function(){
            $("#here").show();
            var x = $(this).val();
            $.ajax({
                type:'GET',
                url:'index.php',
                data:'q='+x,
                success:function(data){
                    $("#here").html(data);
                },
            });
        });
    });
</script>
     <input type="search" name="search" id="search">
<div id="name">
</div>

我的php:

<?php

if(empty($_GET['q']))
{


    $q = $_GET['q'];
    $query = "SELECT * FROM info WHERE name LIKE '%$q%'";
    $result = mysqli_query($conn, $query);
    while($output = mysqli_fetch_assoc($result))
    {
        echo '<a>' . $output['name'] . '</a>';
    }
}

?>

1 个答案:

答案 0 :(得分:1)

您的代码错误。这是一个解决方法

<script>
$(document).ready(function(e){
        $("#search").keyup(function(){
            $("#here").show();
            var x = $(this).val();
            $.ajax({
                type:'GET',
                // Here we will pass the query to the php page
                url:'index.php?q='+x,
                // disabling the cache
                cache: false,
                success:function(data){
                    $("#here").html(data);
                },
            });
        });
    });
</script>
     <input type="search" name="search" id="search">
<div id="name">
</div>
my php:

<?php

if(isset($_GET['q']))
{

    $q = $_GET['q'];
    // You need to sanitize the input before pass the query.
    $query = "SELECT * FROM info WHERE name LIKE '%$q%'";
    $result = mysqli_query($conn, $query);
    while($output = mysqli_fetch_assoc($result))
    {
        echo '<a>' . $output['name'] . '</a>';
    }
}

?>