-3

自動提案検索ボックスを実行しようとしていますが、すべてが機能していますが、リスト内の項目の 1 つをクリックすると、そのテキストがテキスト ボックスに表示されるようにする方法が見つかりません。これが発生したら、リストを一度消す必要もあります。これを行う方法を知っている人はいますか?私のコードが添付されているのを見つけてください:

インデックス.php

<html>
<head>

<script type="text/javascript">

function findmatch() {
    if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}

xmlhttp.onreadystatechange = function() {

    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById('results').innerHTML = xmlhttp.responseText;
    }

    }

xmlhttp.open('GET', 'search.inc.php?search_text='+document.search.search_text.value,         true);
    xmlhttp.send();
}



</script>
</head>
<body>




<form id="search" name="search">

Type a name:<br />
<input type="text"  id = "search_text" name="search_text"  onkeyup="findmatch();">
</form>
<ul>
<div id="results"></div>
</ul>


</body>
</html>

Search.inc.php

<?php


if (isset($_GET['search_text'])) {
$search_text = $_GET['search_text'];
}

if (!empty($search_text)){

if (@mysql_connect('localhost','username','password')) {
if (@mysql_select_db('Database')){

                $query = "SELECT name FROM Customers WHERE name LIKE     '$search_text%'";
                $query_run = mysql_query($query);


                while ($query_row = mysql_fetch_assoc($query_run)){

                    $id = "id".$i;
                    echo "<li>".$name = $query_row['name']."    </li>";

                }

        }
}

}


?>
4

1 に答える 1

1

Clicked()関数をどこからも呼び出していません。出力しているリストアイテムにイベントを追加してみてください。

echo "<li onclick='Clicked(this)'>".$name = $query_row['name']."    </li>";

また、クリックされた関数で何がクリックされたかを知りたいと思うでしょう。」

function Clicked(li)
{
    document.getElementById("aaa").value = li.innerHTML;
    document.getElementById("results").innerHTML = '';
    return false; // so no postback
}
于 2012-12-18T17:55:10.053 に答える