0

codeigniter を使用して Web サイトに AJAX 呼び出しメソッドを実装しようとしているため、ユーザーがボタンをクリックするとライブで更新されます。

クリックボタンが機能し、すべての JSON データが表示されますが、問題は、特定の配列を表示しようとすると、印刷されず、「h」などの単一の値が表示されることです。

文字列「Jamie」を含む配列など、特定の配列を印刷できるようにしたい

どんな助けでもいただければ幸いです

コントローラ

public function insertJSON()
    {
        $this->load->model("values");
        $queryresults = $this->values->getDb();

        $arr = array();
        $arr2 = array();


        foreach($queryresults as $row)
        {
            $arr[] =  $row->post;
            $arr2[] = $row->img;
        }

                    $data = array();
                    $data[] = $arr;
                    $data[] = $arr2;

                    echo json_encode($data);
    }

意見

<script type='text/javascript' language='javascript'>
  $('#getdata').click(function () {
    $.ajax({
      url: '<?php echo base_url().'index.php/welcome/insertJSON';?>',
      async: false,
      type: "POST",
      success: function(data) {
        $('#result_table').html(data[1]);
      }
    })
  });
</script>

変数の Vardump

array(2) {
  [0]=>
  array(4) {
    [0]=>
    string(5) "Jamie"
    [1]=>
    string(4) "Mark"
    [2]=>
    string(5) "James"
    [3]=>
    string(5) "hello"
}
[1]=>
  array(4) {
    [0]=>
    string(16) "oliver@hotmail.com"
    [1]=>
    string(15) "jakie@hotmail.com"
    [2]=>
    string(15) "mark@hotmail.com"
    [3]=>
    string(16) "james@hotmail.com"
}
}
4

3 に答える 3

1

必要に応じて、演算子display a specific arrayを使用します[]

$('#result_table').html(data[0][0]); //will print Jamie
$('#result_table').html(data[0][3]); //will print hello
$('#result_table').html(data[1][1]); //will print jakie@hotmail.com
于 2013-03-18T13:43:59.293 に答える
1

返されたデータでこれを実行してみてください。

data = JSON.parse(data);

そう:

success: function(data) {
    data = JSON.parse(data);
    $('#result_table').html(data[1]);
}
于 2013-03-18T15:17:23.217 に答える
0

いくつかの情報:jSONを正しく取得するには、次のように出力を配置する前に出力TYPEを設定する必要があります。

$this->output->set_content_type('application/json');

次に、次のように出力を設定します。

$this->output->set_output(json_encode($data));  

ただし、var dumpによると、$ data[1]はObject[]を表示し、上記の答えはすべて正しいです。:)

于 2013-03-21T02:29:11.553 に答える