PHP AJAX之后返回空数据

时间:2013-03-17 17:06:11

标签: php javascript jquery ajax

使用以下脚本

后,我没有收到任何数据警报
$(document).ready(function() {
    $('.autosuggest').keyup(function() {
        var search_term = $(this) .attr('value');
        $.post('search.php', {search_term:search_term}, function(data) {
            alert(data);
        });

    });
});

使用以下PHP代码

<?php
include('system/includes/db_connect.php');
if (isset($_POST['search_term']) == true && empty($_POST['search_term']) == false) {

    $search_term = mysql_real_escape_string($_POST['search_term']);
    $query = mysql_query("SELECT username FROM promoties WHERE username LIKE '$search_term%'");
    while (($row = mysql_fetch_assoc($query)) !== false) {
        echo '<li>', $row['username'], '</li>';
    }
}
?>

如果我在警报中放入'test',它就可以正常工作,但是如果我提醒数据,它会给出一个空的警告框。

我还自己测试了PHP代码,它完美运行..

怎么了?谢谢!

2 个答案:

答案 0 :(得分:2)

如果您的.autosugest是输入(我认为是这样)......您需要通过

获取其值

替换此

var search_term = $(this) .attr('value');    

通过

var search_term = $(this) .val();   
这里不需要

attr()

答案 1 :(得分:1)

Use simple falsy value check.

if(isset($_POST['search_term']) && !empty($_POST['search_term'])) {
         // code here
}

或者    在for循环之前写一些echo。这将测试您的查询是否正在执行。