2012-04-17 12 views
4

cakePHPコントローラからJSON配列を返したいとします。私は事実上、ポスト、ajax、またはコントローラ(URLで指定された)への呼び出しを送信するjqueryのクリックイベントを持っており、コントローラは配列を返すだけです。これは私がビューファイルを作成しないため、私は文字通りコントローラに応答を送信し、ヘッダを設定し、json配列をエコーし​​て、おそらく終了することができるため、私にとって意味があります。cakePHPコントローラからjson配列を取得する

私の出力は、コンソール上の「アレイ」としか言わず、アレイ内のパラメータをエコーアウトしません。何か案は?

// jQuery code: 
$("selector").click(function() { 
     $.post("/controller/view/param1/param2/",function(data) { 
     console.log(data); 
     } 
} 

// code in my controller: 
public function view($param1 = false, $param2 = false) { 
     $array = array("Name" => "John"); 
     header("Content-type: application/json"); 
     echo $array; 
     exit; 
} 

編集:解決策を見つけた - でなければなりません$配列をエコーエコーjson_encode oopsie母、解決策を見つけた

+0

:)私は* json_encodeを追加する必要がありました($配列)( $ array)* $配列をエコーすることはできません。他の誰かが良いヒントやアイデアを持っている場合は、後で参照やヒントのために送信してください – mauzilla

+1

正確に。何も送信しない場合、あなたは "POST"を使用している理由はありますか?これはGET/LOADなどを使用して1つの投稿のみを行う2つの要求を受け取ります。 –

答えて

3
public function view($param1 = false, $param2 = false) { 
     $array = array("Name" => "John"); 
     header("Content-type: application/json"); // not necessary 
     echo json_encode($array); 
     exit; 
} 
+0

上記のように、配列をエコーすることはできません。私はPHP関数json_encodeを使用しなければなりません。 javascriptで使用できるようにjsonオブジェクトに配列します。 – mauzilla

+0

ケーキ2を仮定すると、レスポンスオブジェクトがヘッダーを送信するようにするのがよりクリーンです(Mauritzは残念なことに言及するのを忘れていました) – mark

関連する問題