Cakephp 如何在关闭模式窗口和自动刷新div时使用它们实现页面?
我正在尝试实现一个页面,其中用户通过模式窗口添加儿童或/和成人,关闭此模式窗口后,添加的人将显示在主页面中。这就像配置一个项目,通过使用模式选择添加信息的人员,然后在完成后确认。但是,我们希望显示已经添加的人员。我过于简单化了,因为你问的是如何做,而不是具体的细节。所以请记住,这是一种指导原则,但你需要调整和调整以适应你的需要 所以,这就是我要做的:Cakephp 如何在关闭模式窗口和自动刷新div时使用它们实现页面?,cakephp,Cakephp,我正在尝试实现一个页面,其中用户通过模式窗口添加儿童或/和成人,关闭此模式窗口后,添加的人将显示在主页面中。这就像配置一个项目,通过使用模式选择添加信息的人员,然后在完成后确认。但是,我们希望显示已经添加的人员。我过于简单化了,因为你问的是如何做,而不是具体的细节。所以请记住,这是一种指导原则,但你需要调整和调整以适应你的需要 所以,这就是我要做的: 具有要显示列表的视图。让我们称它为view.ctp,在那里你会有一张桌子(或者更别致的东西),上面有人 示例代码视图.ctp 啊,还有。。。我想
这是做你想做的事情的概括的、粗糙的方式。你需要验证表单,决定如果添加不起作用怎么办,如果添加起作用怎么办,创建添加操作等等。还有其他方法可以做你想做的事情,比如提交表单后重新加载查看页面,将表单作为另一个操作加载。。。嗯,这取决于你想怎么做。我希望我能帮你找到一些方向。你有代码吗?是的,我有CakePHP的控制器、模型和其他东西,它们是分开工作的,就像你现在看到的蛋糕是如何工作的一样。但我想知道如何在同一个页面中进行不同的添加或删除。是的,但我的意思是,至少有一段代码是很重要的。我认为这里重要的部分是如何实现模式窗口、ajax调用或divs与css的混合?请用那个代码更新这个问题。这就是问题所在,我不知道该用什么。我希望有人能帮我说,我可以用这样或那样的东西来做这件事。我没有模态窗口的代码,因为我不知道该怎么办。谢谢你的评论,@Nunser。这是一个很大的帮助!
<table>
<?
foreach ($people as $id => $person) {
echo '<tr><td>'.$person['name'].' '.$person['lastname'].'</td></tr>';
}
?>
</table>
<div id="dialog-form" title="Add something">
<?
echo $this->Form->create().
$this->Form->input('name').
$this->Form->input('lastname').
echo $this->Form->end();
?>
</div>
<script>
$(function() {
$( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true
});
});
</script>
//lets assume the form id is #form, ok?
$('#form').submit(function() {
/*validations and etc*/
/* remember to prevent event propagation */
var the_name = /* name taken out of the form */;
var the_lastname = /* lastname taken out of the form */;
$.ajax({
type: "POST",
url: "<?php echo $this->Html->url(/*array for url to the add action*/);?>",
data: { name: the_name, lastname: the_lastname }
}).success(function( data) {
/* lets say the table has a #table id */
//add the "new" record to the table
$('#table').append('<tr><td>'+the_name+' '+the_lastname+'</td></tr>');
/* add code here to close the modal if you want */
});
return false;
});
public function add() {
if ($this->request->is('ajax')) {
$this->autoRender = false;
//in $this->request->data should be the data passed by js
if ($this->People->save($this->request->data))
echo 'true :D';
else
echo 'false D:';
return;
}
}