2012-12-18 4 views
-3

나는 자동 제안 검색 상자를 만들려고 노력하고 있지만 모든 것이 작동하지만 목록의 항목 중 하나를 클릭하여 해당 텍스트를 텍스트 상자로 가져갈 때 길을 찾을 수 없습니다. 일단 이런 일이 발생하면 목록이 사라지도록해야합니다. 아무도이 일을하는 방법을 알고 있습니까? 내 코드가 부착 찾아주세요 :목록의 값 중 하나를 클릭하고 텍스트를 텍스트 상자에 넣으려면 어떻게해야합니까?

Index.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>"; 

       } 

     } 
} 

} 


?> 
+1

에서 클릭 있었는지 알고 싶어 할 것이다 당신이 게시 코드는 클릭과 아무 상관이 요소를 포함하고 있으며 심지어 텍스트 상자도 포함하지 않으며로드 목록 항목 만 포함합니다. 원하는 동작을 얻으려는 시도는 무엇입니까? – Waxen

+0

그래, 그게 나쁘다. 그 대답을보고 나서 알았다. 귀하가 게시 한 코드가 귀하가 물어 본 질문과 직접적으로 관련이 없습니다. 친절하게 제안하십시오. – Waxen

답변

1

당신은 어디서나 클릭 수() 함수를 호출되지 않습니다. 목록 항목이 출력됩니다에 이벤트를 추가하십시오 :

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 
} 
+0

완벽하게 일했습니다! 감사합니다. 너의 도움을 위해 너무 많이 – TheHerndog

관련 문제