2013-06-02 3 views
3

아약스를 사용하여 데이터베이스에서 데이터를 검색하고 배열로 저장 한 다음 결과를 반환합니다. 내 목표는 사용자가 "Click Me"버튼을 클릭 할 때입니다. 내가 반환하는 데이터에서 첫 번째 배열 경고 싶어요. 그러나 아래 코드는 아무것도 반환하지 않습니다.Ajax에서 반환하는 데이터를 어떻게 사용할 수 있습니까?

<input type="button" id="click_me" value="Click Me"/> 

var data_array; 

$.post('generate.php', {id: id}, function(data){ 
       data_array= data;   
}); 

$('#click_me').click(function(){ 
    alert(data_array[0]); 
}); 

generate.php

<?php 
    header('Content-Type: application/json'); 
    $array = array('Hello', 'Good Morning', 'Nice to meet you'); 

    echo json_encode($array); 

?> 
+0

페이지가로드되는 순간 게시하고 있습니다. -> 그렇게 스마트하지 않습니다! '$ (document) .ready (function() {/ * ajax call * /}); '를 사용하면 자바 스크립트를''사이에 넣어야합니다. 그리고 왜 버튼을 클릭 할 때 게시하지 마십시오. 내 대답 좀 봐. – botenvouwer

답변

1

, 로컬 변수로 데이터 배열을 선언 중첩 성공 콜백 선언에서 'var에'를 제거하여 글로벌 하나를 사용하지 마십시오

$.post('generate.php', {id: id}, function(data){ 
       data_array= data;   
}); 
+0

그냥 오타 일 뿐이며 여전히 작동하지 않습니다. – user2310422

+0

대단히 고마워요! 아픈 10 분 안에 대답을 수락 – user2310422

0

ajax 요청이 비동기이므로이 방법으로는 작동하지 않습니다. 당신이 할 수있는 한 가지

var data_array; 

    $.post('generate.php', {id: id}, function(data){ 
     data_array= data; 
     $('#click_me').click(function(){ 
     alert(data_array[0]); 
    });   
}); 

입니다 아니면 데이터가 일하는 것이 현재의 코드를받은 후에 만 ​​버튼을 클릭하고 있는지 확인하는 경우

세 번째 옵션은 때 데이터를 검색하는 것 사용자가 버튼을 클릭

$('#click_me').click(function(){ 
     $.post('generate.php', {id: id}, function(data){ 
     data_array= data; 
    alert(data_array[0]);   
    }); 

}); 
0

글쎄, 당신은 json과 자바 스크립트를 사용하고 싶습니다 참조하십시오. mime 유형이 application/json 인 json을 보낼 때 자동으로 배열로 전송됩니다. 이는 json이 존중받는 데이터 유형이며 모든 주요 브라우저가이를 지원하기 때문입니다.

이 내 JQuery와/자바 스크립트입니다 :

   $(document).ready(function() { 
        $('body').on('click', '#clickme', function(){ 
         $.post('json.php', function (json){ 

          // Now do stuff with the json 
          var table = ''; 
          for(q = 0; q < $(json).size(); q++){ 
           table += '<tr><td>' + json[q] + '</td></tr>'; 
          } 
          var content = '<table>' +table+ '</table>'; 
          $('#put_stuf_inside_me').html(content); 

         }); 
        }); 
       }); 

내 HTML :

<input type="button" id="clickme" value="do magic" /> 
<div id="put_stuf_inside_me"></div> 

내 PHP : 당신은 얼마나 쉽게 볼

<?php 

    header('Content-Type: application/json'); 
    $array = array('Hello', 'Good Morning','Nice to meet you','I put something over here'); 

    echo json_encode($array); 

?> 

!

관련 문제