jquery を使用して、cakephp のビューからモーダル ダイアログを表示し、データを送信しています。問題は、データを送信した後、元のページ (ダイアログが開く前) が更新されたことです。親ページを更新しないようにするにはどうすればよいですか? 例えば:
admin_add.ctp (記事コントローラーのビュー)
<div>
//...other code
<?php
echo '<div class="addNewCategory">';
echo 'add';
echo '</div>';
?>
//...other code
</div>
<div class="dialog-form" title='Create new Category'>
</div>
<script type="text/javascript">
$('.dialog-form').dialog({
autoOpen: false,
title: 'New Category',
modal: true,
close: function() {
}
});
$('.addNewCategory').click(function() {
$('.dialog-form').load('/admin/categories/addmodal').dialog('open');
});
</script>
カテゴリーController.ctp
public function admin_addmodal() {
$this->layout=null;
if ($this->request->is('post')) {
$this->Category->create();
if ($this->Category->save($this->request->data)) {
$this->Session->setFlash(__('The category has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The category could not be saved. Please, try again.'));
}
}
}
最後の 1 つはモーダルのビュー、admin_addmodal.ctp です。
<h2><?php echo __('New Category');?></h2>
<div id="content_wrap">
<div class="categories form">
<?php echo $this->Form->create('Category');?>
<?php
echo $this->Form->input('name');
?>
<?php echo $this->Form->end(__('Submit'));?>
</div>
</div>
したがって、一般的には機能します。「追加」をクリックすると、admin_addmodal.ctp を表示しているモーダル ダイアログがトリガーされ、そこにデータを入力して [送信] をクリックします。データが送信され、モーダル ダイアログが閉じます。問題は、元のページが更新された後 (admin/article/ である元のページにリダイレクトした場合)、または「/admin/categories/」に送信することです。
誰もこの問題を解決する方法を知っていますか?