0

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/」に送信することです。

誰もこの問題を解決する方法を知っていますか?

4

0 に答える 0