我如何使用从Ajax返回的数据?

时间:2013-06-02 19:06:55

标签: php jquery arrays

我使用ajax从我的数据库中检索数据并将其存储为数组,然后返回结果。我的目标是,当用户点击“Click Me”按钮时。我想从返回的数据中提醒第一个数组。但是,我的下面的代码没有返回任何内容。

<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);

?>

3 个答案:

答案 0 :(得分:1)

不要将数据数组声明为局部变量,通过在嵌套成功回调声明中删除'var'来使用全局变量:

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

答案 1 :(得分: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]);        
   });

 });

答案 2 :(得分:0)

我看到你想要使用json和Javascript。发送带有mime类型application/json的json时,它会自动转移到数组中。这是因为json是一种受人尊敬的数据类型,所有主流浏览器都支持它。

这是我的jquery / javascript:

                $(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);

?>

你看它有多容易!