2011-10-27 2 views
0

내 인코딩 된 값을 표시하지 : http://jqueryui.com/demos/autocomplete/#remote 및 I는 다음과 같이 출력을 인코딩 오전 :의 jQuery 자동 완성 내가이 예에서하고 있어요

$rows = array(); 
    while($r = mysql_fetch_assoc($category_result)) 
    { 

     $rows[] = $r; 
     error_log ("rows: ".$rows[0]); 
    } 

    echo json_encode($rows); 

을하지만 다른 쪽의 드롭 다운 아무것도 표시되지 않습니다. 다음은 내 테스트 페이지입니다. http://problemio.com/test.php - "ho"를 입력하면 데이터베이스에 2 개의 결과가 일치하지만 어떤 이유로 표시되지 않습니다. 왜 그런가?

감사합니다.

답변

1

속성 이름은 labelvalue이어야합니다. JQuery UI demo page you linked to에서 :

로컬 데이터는 문자열의 간단한 배열 될 수 있거나, 라벨 값 또는 속성 또는 둘 다와, 상기 어레이의 각 항목에 대해 개체를 포함한다. label 속성은 제안 메뉴에 표시됩니다.

그럼 당신은 자바 스크립트 source 핸들러 함수에 label PHP 또는 나중에 하나에 category_name 이름을 변경해야합니다. 후자의 경우 PHP URL을 remote example과 같은 콜백 함수로 대체해야합니다. 그렇게하면 제안 상자에 전달되기 전에 원하는 방식으로 데이터를 가져올 수 있습니다 (예 : jQuery.getJSON()).

희망이 도움이됩니다.

$rows = array(); 
while ($r = mysql_fetch_array($category_result)) { 
    $rows[] = array("label" => $r["category_name"]); 
} 
echo json_encode($rows); 
+0

안녕하세요, 의미가 있지만, 그것을 할 방법을 잘 :

귀하의 코멘트에 대해서는,이 그것을해야한다. 이게 내 PHP 루프에서 어떻게 보일까요? category_name은 데이터베이스 필드이므로이 방법을 사용하는 방법을 잘 모를 것입니다. – GeekedOut

+0

감사합니다 - 당신의 도움으로 그것을 알아 냈어 !! – GeekedOut