2014-04-22 2 views
0

여기에 JsonP에 관해 많은 질문이있었습니다. 실제로 모든 답변을 통해 봤습니다. 올바른 결과. 나는 몇 시간을 들여 문자 그대로 시간을왔다 갔다하면서 다른 혀를 보려고 노력했다. 어쨌든, 아래로의 덩어리로 :jQuery JSONP "undefined"응답

내 스크립트 (같은 페이지 내 양식 등)

$(function() { 
    function log(message) { 
     $("<div>").text(message).prependTo("#log"); 
     $("#log").scrollTop(0); 
    } 
    $("#name").autocomplete({ 
     source: function(request , response) { 
      $.ajax({ 
       url: "search.php", 
       jsonp: "callback", 
       data: { 
        term: request.term 
       }, 
       dataType: "jsonp", 
       type: "GET", 
       success: function (data, status) { 
        if (status=="success") { 
         $("#log").html(response); 
        } 
        response($.map(data, function (item) { 
         return { 
          label: item.label, 
          value: item.value 
         }; 
        })); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
      "Selected: " + ui.item.label + ui.item.value : 
      "Nothing selected, input was " + this.value); 
     }, 
     open: function() { 
      $(this).removeClass("ui-corner-all").addClass("ui-corner-top"); 
     }, 
     close: function() { 
      $(this).removeClass("ui-corner-top").addClass("ui-corner-all"); 
     } 
    }); 
}); 

내 양식 (스크립트와 같은 페이지)

<form method="post" action=""> 
     Name : <input type="text" id="name" name="name" /> 
</form> 

<div class="ui-widget" style="margin-top:2em; font-family:Arial" id="log"> 
     <p>Result</p> 
</div> 

내 search.php

if (empty($_GET['term'])) exit ; 
require 'php/config/sql.inc.php'; 
$link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_NAME) or die(sqlerror(mysqli_error($link), __LINE__, __FILE__)); 

$req = "SELECT supplier_id, supplier_name FROM supplier WHERE supplier_name LIKE '".mysqli_real_escape_string($link, $_GET['term'])."%'"; 

$query = mysqli_query($link, $req); 

while($row = mysqli_fetch_array($query)) 
{ 
    $results[] = array('data' => 
        array(
         'value' => $row['supplier_id'], 
         'label' => $row['supplier_name'] 
        ) 
       ); 
} 


header('Cache-Control: no-cache, must-revalidate'); 
header('Expires: Mon, 26 Nov 2014 05:00:00 GMT'); 
header('Content-type: application/json'); 

echo ((isset($_GET['callback'])) ? $_GET['callback'] . '(' . json_encode($results) . ')' : json_encode($results)); 

위젯에는 팝업이 표시되지만 내용은 표시되지 않습니다. 내가 팝업 빈 목록 상자를 선택하면, 그것은 분명에서 "undefinedundefined"추가 : 나는 JSON 보내고 파이어 폭스에 불을 지르고/웹 dev에 플러그인에 수신 확인했다

  log(ui.item ? 
      "Selected: " + ui.item.label + ui.item.value : 
      "Nothing selected, input was " + this.value); 

, 나는

를 얻을 수

답변

0

0: Object 
    data: Object 
     value: "1" 
     label: "Cyprus" 
여기에 내 대답을 찾았

Answer to Question

그것은 내가 믿는 array_push 사용하지 않는 함께 할 수 있었다.