我正在使用 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/”。
有谁知道如何解决这个问题?