有人能发现我的错误吗(自动完成文本框)


Can someone spot my error (autocomplete text box)?

到目前为止,我有HTML:

<div id="box" style="width:400; height:400; margin-left:auto; margin-right:auto; margin-top:100;">
<h2>Enter a word</h2>
<input type="text" id="input" ></input>
</div>
<div id="suggest">
</div>

Javascript:

<script type ="text/javascript">
$(document).ready(function(){
$("#input").keyup(function(){
var input = $("#input").val();
$.ajax({
url: "PathToPHPFileThatConnectsToDatabaseAndRetreivesValues",
data: "input"+input,
success: function(msg){
alert(msg);
$("#suggest").html(msg);
}
});
});
});
</script>

PHP:

<?php
$dbh=mysql_connect ("localhost", "~", "~") or die ('I cannot connect to the database because: ' . mysql_error()); 
mysql_select_db ("~") or ("Database not found");
$input = $_REQUEST['input'];
$input = mysql_real_escape_string(trim($input));
    $sql = "SELECT * FROM ~ WHERE ~ LIKE '%".$input."%'";
    $data = mysql_query($sql);
    $arrcnt = -1;
    $dataArray = array();
    while ($temp = mysql_fetch_assoc($data)) 
        {
            foreach($temp as $key=>$val) {
                $temp[$key] = stripslashes($val);
                $arrcnt++;
        }
        $dataarray[$arrcnt] = $temp;
    }
    $list = "<ul style='width:100;height:auto;'>";
    foreach($dataArray as $val) {
        $list .= "<li>".$val['DesiredColumnContainingDesiredData']."</li>";
    }
    $list .= "</ul>";
    echo $list;

?>

现在,这些代码应该协同工作,自动完成id="suggest"的div,然后在选择时填充id="input"的文本字段。。。我一直收到警报,上面写着:<ul style='width:100;height:auto;'></ul>

像这样更改ajax代码,

$.ajax({
url: "PathToPHPFileThatConnectsToDatabaseAndRetreivesValues",
data: {"input":input},
success: function(msg){
alert(msg);
$("#suggest").html(msg);
}
});

问题是因为php中的变量名不同。您添加了$dataarray而不是$dataarray

此外,对于ajax

您可以将数据作为字符串或对象传递

数据:{"输入":输入}

数据:"input="+输入

在ajax 中添加类型:"POST"