<script type="text/javascript">
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "gethint.php?q=" + str, true);
xmlhttp.send();
}
</script>
<form>
First name: <input type="text" onkeyup="showHint(this.value)" size="20" />
</form>
<span id="txtHint"></span>
-------------------------------------
<?php
$a[]="Anna";
$a[]="Wenche";
$a[]="Vicky";
//get the q parameter from URL
$q=$_GET["q"];
//lookup all hints from array if length of q>0
if (strlen($q) > 0)
{
$hint="";
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$a],0,strlen($q))))
{
if ($hint=="")
{
$hint=$a[$i];
}
else
{
$hint=$hint." , ".$a[$i];
}
}
}
}
// Set output to "no suggestion" if no hint were found
// or to the correct values
if ($hint == "")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;
?>
回答
嘗試改變這一行
if (strtolower($q)==strtolower(substr($a[$a],0,strlen($q))))
到
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
認爲我們在這裏得到了一個勝利者! :) – epascarello 2011-05-06 09:40:46
<form>
FirstN<input type="text" onkeyup="return showHint(this.value);" size="20" />
</form>
好的...謝謝你的夥計.... – Partyboy 2011-05-06 09:17:56
你爲什麼要這樣做?一個好的程序員會不加區別地添加它,除非需要取消事件對象本身可以執行的事件,否則不需要返回語句。 – epascarello 2011-05-06 09:25:04
願意打賭,這個答案並沒有神奇地讓海報的代碼工作。 – epascarello 2011-05-06 09:28:13
if (xmlhttp == 4 && xmlhttp.status == 200) {
Should BE
if (xmlhttp.readyState==4 && xmlhttp.status==200)
---------------------------
if (strtolower($q)==strtolower(substr($a[$a],0,strlen($q))))
Should BE
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
我認爲這將發生在錯誤我的Ajax調用不工作
strtolower(substr($a[$a],0,strlen($q))))
這是什麼$ a [$ a] ..?就像爲循環執行然後
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$a],0,strlen($q))))
請改變這樣
for($i=0; $i<count($a); $i++)
{
if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
$以$一個替代我則只有$一個[]工作
- 1. chidren當我鍵入文本
- 2. 當我在文本框中鍵入任何內容時在gridview中搜索
- 3. 我在我的文本框中鍵入文本,它移動得越多我鍵入
- 4. 如何應用textchange作爲我在文本框中鍵入?
- 5. ASP.NET:異步回發,因爲我在文本框中鍵入
- 6. 我需要在文本框中鍵入值時調用函數
- 7. 在html文本框或輸入框中鍵入kannada語言
- 8. 我無法在WatiN中鍵入文本
- 9. 在光標下方鍵入並獲取文本框當前詞
- 10. 當我在文本框中按下輸入按鈕時發射
- 11. 在文本框中輸入文本後禁用鍵盤
- 12. 按提交文本框中輸入鍵
- 13. 當我在文本框中鍵入一些文本時,會分派兩次OnKey事件。如何預防?
- 14. 按鍵,然後在文本框中鍵入消息?
- 15. 更改文本顏色當在文本框中輸入內容
- 16. 使回車鍵充當對文本框
- 17. 在文本框中輸入密碼時鍵入的字符
- 18. 當我每次按下鍵入值時獲取文本框的值
- 19. 當用戶在文本框中鍵入一個字符時通知ViewModel
- 20. 我怎樣才能使一個文本框執行退格,當我不在其中鍵入VB.NET
- 21. 在ASP.NET中自動填充文本框取決於在另一個文本框中鍵入的文本
- 22. 鍵盤隱藏在輸入文本到文本框之間
- 23. 無法在文本框內鍵入任何文本
- 24. 在文本框中輸入
- 25. 在Datepicker文本框中輸入文本
- 26. 當我按Tab鍵未選擇下一個文本框
- 27. ISPconfig,當我按Tab鍵清除域名文本框
- 28. 當我在文本框中按回車鍵時,請勿提交表格
- 29. 當我的文本框位於resourcedictionary中時,如何保存文本輸入?
- 30. 當用戶在文本框中鍵入值時,在另一個文本框中顯示一個文本框的值
什麼是不工作?當你看着Fiddler或Firebug時,你會看到一個Ajax調用進入服務器嗎?你看到控制檯中的錯誤嗎? – epascarello 2011-05-06 09:26:44
服務器上還是客戶端上的錯誤?你是否厭倦了直接調用瀏覽器中的Ajax調用的url?那樣有用嗎?你需要指出它打破的地方。 – epascarello 2011-05-06 09:38:45
檢查來自Firebug的調用和響應,代碼很好。 – booota 2011-05-06 11:09:43