2013-04-17 1 views
0

입력 태그에 동적으로 enterPerson()을 통해 html을 추가 한 다음 onkeyup = changeOnType (this)을 호출하여 autoInvit.php에서 $ 결과를 에코하면 autocomplete가 표시되지만 내 autocomlete 코드는 그렇지 않습니다 작업, 사실을 알리는 데이터가 표시됩니다. 어느 누구도 나를 도울 수 있습니까? 미리 감사드립니다 :) JQuery와 및 자동 완성을위한동적 HTML을 사용하여 자동 완성 기능이 작동하지 않습니다

헤더 파일 : "main.php"에서

<link rel="stylesheet" href="//code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" /> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script src="//code.jquery.com/jquery-1.8.3.js"></script> 
<script src="//code.jquery.com/ui/1.10.0/jquery-ui.js"></script> 

자동 완성 :

<script>  
function changeOnType(x){ 

    $.post(
    "autoInvit.php", 
    { 
     vals: $(x).val() 
    }, 
    function(data){ 

    $("#"+x.id).autocomplete({source:"autoInvit.php" } ); 

    //alert(data); 
    } 
    ); 

} 
</script> 

여기에 동적 HTML의 PHP 코드는 "invities에의합니다. php ":

<?php 

echo '<input class="e" type="email" id="email" onkeyup="changeOnType(this)" autocomplete="on" role="textbox" aria-autocomplete="list" aria-haspopup="true" />'; 
?> 

다음은 내 PHP 파일"autoInvit.php "입니다. 결과 :

<?php 

    include("includes/connection.php"); 

    $value = strip_tags($_POST['vals']); 

    $req = "SELECT email as name " 
     ."FROM members " 
     ."WHERE email LIKE '".$value."%' "; 


    $query = mysql_query($req); 

    while($row = mysql_fetch_array($query)) 
    { 
     $results[] = $row['name']; 
    } 


    echo json_encode($results); 

    ?> 

post 요청을 할 필요가 없습니다

답변

0

도와주세요. 편집 : 별도의 기능을 호출하거나 입력에 리스너를 첨부 할 필요없이 자동 완성 플러그인을 등록하면됩니다. DOM이 준비되면 호출해야하므로 준비된 함수로 래핑해야합니다. 이것은 당신이 필요로하는 모든 자바 스크립트해야한다 :

$(function() { 
    $("#"+x.id).autocomplete({source:"autoInvit.php" } ); 
}); 

사용자가 매개 변수 autocomplete에 대한 jQuery를 워드 프로세서에서 term

으로 요청과 함께 전달됩니다 입력 한 무엇 :

문자열 : 문자열을 사용하면 Autocomplete 플러그인은 문자열이 JSON 데이터를 반환하는 URL 리소스를 가리킬 것으로 예상합니다. 은 동일한 호스트 또는 다른 호스트에 있어야합니다 (JSONP를 제공해야 함). 자동 완성 플러그인은 결과를 필터링하지 않고 문자열에 용어 필드가 추가됩니다.이 필드는 서버 쪽 스크립트에서 이 결과를 필터링하는 데 사용해야합니다. 예를 들어 소스 옵션이 이 "http://example.com"이고 사용자 유형이 foo 인 경우 GET 요청 은 http://example.com?term=foo이됩니다. 데이터 자체는 위에서 설명한 로컬 데이터와 동일한 형식의 이 될 수 있습니다.

또한 사용자의 콘텐츠를 DB에 직접 전달할 때주의해야합니다. SQL injection에 자신을 열 수 있습니다.

+0

감사합니다 @colestrode,하지만 여전히 작동하지 않습니다 : ( – murtaza

+0

어떤 오류 메시지가 나타 납니까? – cfs

+0

죄송합니다, 내가 그것을 잘못 판단, 작동, 감사합니다 친구 :) – murtaza

관련 문제