让我们说它看起来像这样:
<input type='text' name='customer' onkeyup='searchFor(this.value);' list='customers'>
我有一个数据列表(嵌入在PHP代码中,将在页面的某处返回)
<datalist id='customers'>
<option>$customer[0]['name']</option>
</datalist>
我想输入一个客户ID,然后它应该将客户的名称作为我的文本字段下面的建议列表返回。
这是我的MySQL查询工作(如果输入数字,var_dump()返回正确的值)
$customer = $database->query("SELECT * FROM customers WHERE customerID LIKE ('%".$_POST["searchterm"]."%')")->fetchAll(PDO::FETCH_ASSOC);
但它没有显示我姓名的建议清单。
在我看来这是行不通的,因为我输入了一个数字。
已编辑:
function searchFor(suchbegriff){
var xmlHttp = null;
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
if (xmlHttp) {
var url = "includes/search/search.php";
var params = "suchbegriff="+suchbegriff;
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
document.getElementById("ergebnis").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send(params);
}
}
edited2
的search.php
<?php
include_once("../Dbo.class.inc");
if (isset($_POST["searchterm"])){
$customer = $database->query("SELECT * FROM customers WHERE customerID LIKE ('%".$_POST["searchterm"]."%')")->fetchAll(PDO::FETCH_ASSOC);
echo "<datalist id='customers'>";
foreach($customer as $key => $value){
foreach($value as $key2 => $value2){
if($key2 == "Name" || $key2 == "name"){
echo "<option>" . $value2 . "</option>";
}
}
}
echo "</datalist>";
} ?>