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>

类别控制器.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.'));
        }
    }
}   

最后一个是模态视图 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