2012-08-30 4 views
0

웹 응용 프로그램에서 검색 상자를 만들려고 노력 중이며 아약스 게시물을 사용하여 서버에 요청합니다. 내 질문 :PHP에서 JavaScript 및 JQuery로 루프 배열 값 전달

루프 된 배열 값을 PHP에서 내 JavaScript로 보낼 수 있습니까? 내 서버에서 모든 결과를 가져오고 싶습니다.

클라이언트 측 : 아약스 POST 요청

<script type="text/javascript"> 
$(document).ready(function() { 
    $.ajax({ 
     type: "POST", 
     url: "searchPlaces.php", 
     data: { searchInput: form.searchTxtId.value }, 
     success: function (result) 
     { 
      // Get the search result 
     } 
    }); 
}); 
</script> 

서버 측 (아약스에서 게시물을 검색하고, 질의 한 후) : 당신의 success 콜백에서

while ($result = mysql_fetch_assoc ($query)) 
{ 
    $resultName = $result['name']; 
    $resultAddress = $result['address']; 
} 
+0

가능한 중복 http://stackoverflow.com/questions/4823516/array-from-php-to-javascript를 사용) – PeeHaa

+1

그런 식으로 HTML 및 JavaScript 주석을 혼합 및 일치시킬 수는 없습니다. 자바 스크립트에 자리 표시 자 주석을 넣는 경우 자바 스크립트 주석이어야합니다. – meagar

답변

0
$results = array(); 
while ($result = mysql_fetch_assoc ($query)) { 
    $results[] = $result; 
} 
echo json_encode(array('results' => $results)); 

당신이 다음 반복 할 수 result.results 이상은 쿼리의 열 이름이있는 개체가 특성으로 포함되어 있습니다.

success: function(result) { 
    $.each(results, function(i, row) { 
     console.log(row.name, row.address); 
    }) 
} 

또한 응답 유형의 불필요한 추측을 피하기 위해 $.ajax({...}); 인수에 dataType: 'json'를 사용하는 것이 좋습니다.

당신이 클라이언트에 전달하려는 것보다 SQL 결과에 더 많은 열이 경우

, 당신은 루프에서 사용자 지정 배열을 추가 할 수 있습니다

$results[] = array('name' => $row['name'], 'address' => $row['address']); 
+0

자세한 답변을 보내 주셔서 감사합니다. – JetPro

0

네 당신이 JSON 문자열을 반환 할 수 있습니다 :

$.ajax({ 
     type: "POST", 
     dataType: 'json', // return type is json ; 
     url: "searchPlaces.php", 
     data: { searchInput: form.searchTxtId.value }, 
     success: function (result) 
     { 
      $.each($result,function(index, value){ 
       // use params 
      } 
     } 
    }); 

와 PHP 측

당신은 json_encode()

[자바 스크립트 PHP에서 배열 (의