简体   繁体   English

有人可以发现我的错误(自动填充文本框)吗?

[英]Can someone spot my error (autocomplete text box)?

So far I have HTML: 到目前为止,我有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: 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:

<?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;



?>

Now, these codes are supposed to work together to autocomplete the div with id="suggest" then populate the text field with id="input" when selected ... I keep getting alert that reads: <ul style='width:100;height:auto;'></ul> 现在,这些代码应该一起工作,以使用id =“ suggest”自动完成div,然后在选定时使用id =“ input”填充文本字段...我一直收到以下警告: <ul style='width:100;height:auto;'></ul>

change ajax code like this, 像这样更改ajax代码,

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

The issue is because in php your variable name is different . 问题是因为在php中,变量名不同。 You added $dataarray instead of $dataArray 您添加了$ dataarray而不是$ dataArray

Additionally for ajax 另外对于ajax

You can pass data as a string or as an object 您可以将数据作为字符串或对象进行传递

data:{"input":input} 数据:{“ input”:input}

or 要么

data:"input="+input 数据:“ input =” + input

add type: 'POST' in ajax 在ajax中添加类型:“ POST”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM