2012-04-04 8 views
0

を介して他のコントローラに現在のモデルIDを送信同じコントローラ(posts/foo)上の別のアクションからデータを取得します。

現在のモデルのIDをAJAXに送信するだけで、他のコントローラに送信することはできますか?

この場合、両方のアクションが同じコントローラ内にありますが、この場合に役立つかどうかはわかりません。

答えて

0

あなたはjqueryのを使用している場合は、事はあなたのドキュメントがロードされた後、あなただけの他のコントローラにこのIDを送信することである。この

$(document).ready(function(){ 
    //ajax call here 
}); 

のようなものを持つことができます。

私はあなただけの編集ビューからのポストIDを取得する必要がある場合、これはあなたが必要とする変数であることが

+0

私は自分のすべてのajaxをswimingly働いています。問題は、現在のモデルからjQueryにデータをきれいに送信する方法を見つけることです。私はむしろ、私のビューやそのようなものにたくさんの "スクリプト"タグを追加したくないでしょう。 –

+0

サーバーサイド(モデル)がクライアント側(ビュー)と直接話すことができないため、jqueryで実際にモデルを「話す」ことはできません。このためにビューの中に何らかの種類のスクリプトタグが必要です働く検証に関して疑問がある場合は、$ this-> Htmk-> scriptBlock( 'スクリプトはここ'、array( 'inline' => false));これはあなたのヘッダーにスクリプトブロックを出力するので、検証されます –

+0

意味があります。これが私のJSでやっていることです。 CakeはデフォルトでルーティングにIDを使用しているため、ルートに基づいてIDを吐き出します。 var pathname = window.location.pathname; pathname = pathname.split( "/"); var pID = pathname.pop(); –

0

に役立ちます願っています:そのない「ポスト」は、それを交換した場合

$this->Form->fields['Post.id'] 

あなたが使用しているモデル名でIDを取得しようとしています。

更新:解明に基づいて:あなたは正しいです。あなたがしようとしていることについては、スクリプトタグ内にリンクまたは固有のIDだけを生成し、その変数をあなたのインクルードされたスクリプトで何とか使う必要があります。 how I did it for a CakePHP pluginを見てください。簡単な要約:

  • が含まJSファイルに
  • 何かを、その変数を使用しますが、通常

  • は、コントローラ内のスクリプトタグ内の変数を作成して行うように

    1. は、JSファイルを含めます

      <script type="text/javascript"> 
      id = '<?php echo $this->Form->fields['Post.id'] ?>; 
      </script> 
      

      このID変数は、含まれるJavaScriptファイルで使用します

  • +0

    おそらく私は初期の質問をより明確に編集する必要があります。問題は、IDフィールドを取得していない、それはPHPが私のJSに何を伝えるための最良の方法を見つけることです。私の唯一の本当の選択肢は、