【发布时间】:2015-08-22 08:14:11
【问题描述】:
很多地方可以看,有很多想法如何做到这一点,但我没有成功。
当您输入时,我有一个名为“呼号”的输入字段,它会输出到 MySQL 表并根据您已经输入的内容返回建议。我想要关于值应该出现在输入字段中的提示,以便我可以选择其中一个或继续输入。当我选择我想要的时候我也想填写Fname字段,它也是从MySQL返回的,见下面的XML。
我真的很想学习如何做到这一点,但是使用我只能理解的术语进行冗长的解释不会像示例那样深入。救命!
输入看起来像这样:
Call Sign: <input type='text' value='' placeholder='Search' id='cs1' style='text-transform:uppercase' autofocus onkeyup='showHint(this.value)'> Name: <Input type='text' name='Fname'style='text-transform:capitalize'>
这样的 MySQL:
<?php
require_once "dbConnectDtls.php";
$q = $_REQUEST["q"];
$stmt = $db_found->prepare("SELECT DISTINCT callsign, Fname
FROM NetLog
WHERE recordID IN (SELECT max(recordID)
FROM NetLog
WHERE callsign LIKE ? GROUP BY callsign)");
$stmt->execute(array("$q%"));
$result = $stmt->fetchAll();
print_r($result);
?>
上面使用q = 'w' 运行测试 MySQL 的结果返回:
Array ( [0] => Array ( [callsign] => W0DLK [0] => W0DLK [Fname] => Deb [1]
=> Deb ) [1] => Array ( [callsign] => W0GPS [0] => W0GPS [Fname] =>
John [1] => John ) [2] => Array ( [callsign] => WA0TJT [0] => WA0TJT
[Fname] => Keith [1] => Keith ) [3] => Array ( [callsign] => W0KCN [0]
=> W0KCN [Fname] => Net Control [1] => Net Control ) )
我的功能是这样的:
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
}
【问题讨论】:
-
抱歉,您的请求与标准自动建议有何不同