2017-11-28 8 views
0

오늘이 두 파일을 작성했지만 아직 작동하지 않습니다 (제안 된 결과가있는 커튼이 표시되어야 함). 나는 거의 수정이 필요 없다고 확신하지만, 어떤 것들을 해결할 수는 없다 .-- ( More, 나는 다중 선택을 허용하는 방법을 절대 모르고있다. 가장 좋은 것은 클릭 할 것이다. 추천 단어, 그때 등등 검색하고 다른 단어보다, 쉼표와 공백으로 토큰/분리에 입력합니다. 모든 아이디어/제안?라이브 검색 앱을 수정하고 단일에서 복수 선택으로 바꾸기

<!DOCTYPE html> 
<html> 

<head> 
    <script> 
    function showResult(str) { 
     if (str.length == 0) { 
     document.getElementById("livesearch").innerHTML = ""; 
     document.getElementById("livesearch").style.border = "0px"; 
     return; 
     } 

     if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     var xmlhttp = new XMLHttpRequest(); 
     } else { // code for IE6, IE5 
     var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      document.getElementById("livesearch").innerHTML = this.responseText; 
      document.getElementById("livesearch").style.border = "1px solid #A5ACB2"; 
     } 
     } 
     xmlhttp.open("GET", "livesearch.php?q=" + str, true); 
     xmlhttp.send(); 
    } 
    } 
    </script> 
</head> 

<body> 

    <p><b>Start typing a name in the input field below:</b></p> 
    <form> 
    <input type="text" size="30" onkeyup="showResult(this.value)"> 
    <div id="livesearch"></div> 
    </form> 
</body> 

</html> 

<?php 
// Array with names 
$a[] = "Anna"; 
$a[] = "Brittany"; 
$a[] = "Cinderella"; 
$a[] = "Diana"; 
$a[] = "Eva"; 
$a[] = "Fiona"; 
$a[] = "Gunda"; 
$a[] = "Hege"; 
$a[] = "Inga"; 
$a[] = "Johanna"; 
$a[] = "Kitty"; 
$a[] = "Linda"; 
$a[] = "Nina"; 
$a[] = "Ophelia"; 
$a[] = "Petunia"; 
$a[] = "Amanda"; 
$a[] = "Raquel"; 
$a[] = "Cindy"; 
$a[] = "Doris"; 
$a[] = "Eve"; 
$a[] = "Evita"; 
$a[] = "Sunniva"; 
$a[] = "Tove"; 
$a[] = "Unni"; 
$a[] = "Violet"; 
$a[] = "Liza"; 
$a[] = "Elizabeth"; 
$a[] = "Ellen"; 
$a[] = "Wenche"; 
$a[] = "Vicky"; 

// get the q parameter from URL 
$q = $_GET["q"]; 

$hint = ""; 

// lookup all hints from array if $q is different from "" 
if ($q !== "") { 
    $q = strtolower($q); 
    $len=strlen($q); 
    foreach($a as $name) { 
     if (stristr($q, substr($name, 0, $len))) { 
      if ($hint === "") { 
       $hint = $name; 
      } else { 
       $hint .= ", $name"; 
      } 
     } 
    } 
} 

// Output "no suggestion" if no hint was found or output correct values 
echo $hint === "" ? "no suggestion" : $hint; 
?> 
+1

다른 답변 (https://stackoverflow.com/a/36001640/3650835)에서 코드를 복사/붙여 넣는 것 이상의 일을한다면 답을 얻는 것이 훨씬 더 쉬울 것입니다. . 너 뭐 해봤 니? 어떤 콘솔/PHP 오류가 발생합니까? 일반적으로 어떤 일이 발생합니까? 작동시키기위한 아이디어는 무엇입니까? – KayakinKoder

+0

@mplungian - 오, 죄송 합니다만 실제로 w3school (https://www.w3schools.com/php/php_ajax_livesearch.asp 및 https의 두 가지 다른 예에서 해당 부분을 발견 한 이후 다른 답변에서 정확하게 복사되지 않았습니다. : //www.w3schools.com/php/php_ajax_php.asp) 가능한 한 그들을 함께 메쉬하려고 노력하고있어 - 또한 (stackoverflow.com/a/36001640/3650835) 물어보기 전에 구글에서 이해하지만 이해했습니다 정확히 같은 문제는 아니야. –

답변

0

좋아들 , 그것은 나에게 해결책을 찾은 것 같습니다. 실제로 모든 조각을 정리해야하지만 이론적으로는 효과가 있습니다. scriptoculous라는 라이브러리가 있습니다.이 라이브러리는 내가 찾고있는 것을 정확하게 수행하는 함수 (ajax.autocompleter())를 가지고 있습니다. 더 많은 레퍼런스를 보려면 다음을보십시오. http://www.codicefacile.it/tutorials/tutorials.php/52/Ajax_Autocompleter_nei_nostri_form prototype.js를 라이브러리로 사용하기 때문에 jquery.js를 대신 사용하는 동일한 페이지의 다른 애플리케이션과 충돌합니다. 하지만 다음 해결 방법으로 해결해야합니다. https://stackoverflow.com/a/3641464/9016436