0

私はPHP関数を持っています:

public function doit()
{
    $arr1= array();
        $arr1['index1'] = 'value1';
            $arr1['index2'] = 'value2';
}

JQuery 関数から呼び出します。

$.ajax
({    
    url: "/controller/doit",  
    success: function()
    { 
        alert('done!'); 
    }  
 });  

私が欲しいのは、このajax呼び出しを含む私のJQuery関数が、PHP関数が返したものと同じ配列を返すことです(唯一の違いはもちろん言語です:PHPではなくJS)

4

3 に答える 3

2

doit関数から何かを返す必要があります。

public function doit()
{
  $arr1= array();
  $arr1['index1'] = 'value1';
  $arr1['index2'] = 'value2';

  echo json_encode($arr1);
}


$.ajax
({    
  url: "/controller/doit",  
  success: function(data)
  { 
    console.log(data); 
  }  
});  

編集:

PHPへのJquery:javascriptが実行されると、URLを使用してデータ配列がサーバーに送信されます。サーバーは配列を受信し、それをjsonとしてエンコードして、データをコンソールに記録する成功コールバック関数に送り返します。

// YOUR JAVASCRIPT FILE
// your data to send.
var data = {'index1': 'value1', 'index2': 'value2'};

$.ajax({
  type: 'POST',
  url: '/controller/doit',
  data: data,
  success: function(data) { console.log(data) },
  dataType: 'json'
});


//YOUR PHP FILE
public function doit()
{ 
   // you should be setting your content type header to application/json if sending json
   header('Content-type: application/json');
   echo json_encode($_POST['data']);
}
于 2012-12-03T02:04:18.890 に答える
0

次を使用して、phpからjsonとして配列をエコーできます。

echo json_encode($arr1);

そして、JSで$.getJSONを使用します。

$.getJSON('/controller/doit', function(data) {
  console.log(data);
});
于 2012-12-03T02:04:04.737 に答える
0

JSONを使用して配列をエンコードできます。 http://php.net/manual/en/function.json-encode.php

于 2012-12-03T02:04:08.263 に答える