Cakephp 如何在关闭模式窗口和自动刷新div时使用它们实现页面?

Cakephp 如何在关闭模式窗口和自动刷新div时使用它们实现页面?,cakephp,Cakephp,我正在尝试实现一个页面,其中用户通过模式窗口添加儿童或/和成人,关闭此模式窗口后,添加的人将显示在主页面中。这就像配置一个项目,通过使用模式选择添加信息的人员,然后在完成后确认。但是,我们希望显示已经添加的人员。我过于简单化了,因为你问的是如何做,而不是具体的细节。所以请记住,这是一种指导原则,但你需要调整和调整以适应你的需要 所以,这就是我要做的: 具有要显示列表的视图。让我们称它为view.ctp,在那里你会有一张桌子(或者更别致的东西),上面有人 示例代码视图.ctp 啊,还有。。。我想

我正在尝试实现一个页面,其中用户通过模式窗口添加儿童或/和成人,关闭此模式窗口后,添加的人将显示在主页面中。这就像配置一个项目,通过使用模式选择添加信息的人员,然后在完成后确认。但是,我们希望显示已经添加的人员。

我过于简单化了,因为你问的是如何做,而不是具体的细节。所以请记住,这是一种指导原则,但你需要调整和调整以适应你的需要

所以,这就是我要做的:

  • 具有要显示列表的视图。让我们称它为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;
        }
    }