zf 1 で ajax を操作する方法を学ぼうとしていますが、問題が発生しました。私は単純なフォームを持っており、その値をコントローラーのインデックスに投稿しています。送信したメッセージを返して、class="show-msg" を使用して div に出力したいのですが、機能していないようです。 . 未定義のインデックス「メッセージ」というphpエラーがあります。誰か助けてください。私のjquery関数:
$(document).ready(function(){
$("#form").submit(function() {
var message = $('#login').val();
$.post('/index',{'message':message},function(data){
//console.log(data);
$('.show-msg').html(data)
});
return false;
});
});
それから私のコントローラー
public function init()
{
$this->_helper->layout()->setLayout('admin');
$contentSwitch = $this->_helper->getHelper('AjaxContext');
$contentSwitch->addActionContext('ajax',array('json'))
->initContext();
}
public function indexAction()
{
$form = new Application_Form_Test();
$this->view->form = $form;
$form->setAction('index')
->setMethod('post');
$myArrayofData = array('a','b','c');
if($this->_request->isXmlHttpRequest()){
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$msg = $this->_request->getPost();
echo $msg['message'];
}
フォームはモデルを介してフレームワークの方法で作成されており、そのアクションとメソッドは問題ありません。リクエストは送信されていますが、レスポンスとして json 形式ではなく完全な html ページのソース コードを取得します。
注:編集済み