2

使用以下脚本后,我没有收到任何数据警报

$(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>';
    }
}
?>

如果我将“测试”放在警报中,它就可以正常工作,但如果我提醒数据,它会给出一个空的警报框。

我还自己测试了PHP代码,它运行良好..

怎么了?谢谢!

4

2 回答 2

2

如果你.autosugest是一个输入(我认为它是)......你需要通过

替换这个

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

经过

var search_term = $(this) .val();   

attr()这里不需要

于 2013-03-17T17:13:16.790 回答
1
Use simple falsy value check.

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

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

于 2013-03-17T17:20:16.773 回答