1

$this->Js->submit を使用して値をコントローラーに非同期的に渡し、div (id = #upcoming) を更新しています。どういうわけか、コントローラーに渡されるフィールド 'test' の値を保存/取得できません。Firebug は、正しい値が渡されたことを教えてくれます。私は何を間違っていますか?

ファイルを表示 (playlist.ctp):

echo $this->Form->create('Add', array('url' => array('controller' => 'Gods', 'action' => 'add')));
echo $this->Form->input('test');       
echo $this->Js->submit('Addddd', array(
'url' => array(
    'controller' => 'Gods',
    'action' => 'add'
),
'update' => '#upcoming'
));
echo $this->Form->end();

echo $this->Js->writeBuffer(array('inline' => 'true'));

コントローラーのアクション:

public function add()
{
$this->autoLayout = false;
   $this->layout = 'ajax';
$link = $this->request->data['Add']['test'];
$this->set('test',$link);
}

そしてそのビューファイル (add.ctp):

<?php
echo $test;
?>

ご協力いただきありがとうございます!

4

1 に答える 1

1

コントローラーメソッドで pr($link) を試しましたか? または、必要に応じてログ ファイルに送信します。そうすれば、データが受信されたかどうかを確認できます。

もしそうなら、私は何も返されていないと思います

 $this->autoLayout = false;

これなしで試してみてください。デフォルトではなく、引き続き ajax レイアウトを呼び出します。それ以外の場合は、レンダリング関数を手動で呼び出す必要があります

$this->render('add');

編集 以下のコメントで説明されているように、ビューが正しい場所にあることを確認してください。(これは、コントローラーに関連付けられたビュー フォルダーになります)

于 2012-06-20T22:01:56.110 に答える