【问题标题】:how to calling a form element and save the data如何调用表单元素并保存数据
【发布时间】:2013-07-24 12:39:53
【问题描述】:

我已经为发布和评论制作了控制器和模型。

我的帖子索引调用了我的添加评论视图。它工作正常,但添加评论视图会打开另一个页面。

然后,我将添加评论视图包含在一个元素中,以便直接调用我的帖子页面,但是当我单击我的 cmets 添加视图的提交按钮时,它不会保存任何内容。

当我查看提交按钮显示的链接时,它指向我的帖子索引视图。

如何让它发挥作用?

这是我的评论元素的代码

div class="comments form">
<?php echo $this->Form->create('Comment'); ?>
    <fieldset>
        <legend><?php echo __('Add Comment'); ?></legend>
    <?php


        $this->request->data['Comment']['user_id'] = $current_user['id'];
        $this->request->data['Comment']['post_id'] = $post_id;

        echo $this->Form->input('post_id', array('type' => 'hidden'));
        echo $this->Form->input('user_id', array('type' => 'hidden'));

        echo $this->Form->input('content');
    ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>

这里是索引帖子视图调用该元素的部分代码

<div class="element">
        <?php echo $this->element('add_comment', array('post_id' => $post['Post']['id'])); ?>
        </div>

我必须补充一点,这个 div 类元素位于可点击的 div 中。但是对于我在视图中的其他按钮,单击效果很好。


【问题讨论】:

    标签: forms cakephp element


    【解决方案1】:

    更改表单的 url 以将其定向到 Comments 控制器中的添加操作,如下所示

    echo $this->Form->create('Comment', array(
        'url' => array('controller' => 'comments', 'action' => 'add')
    ));
    

    默认情况下,如果你不传递 url` 参数,表单会指向当前被渲染的动作(在这个例子中是 post 控制器),所以你需要指定你希望它发布到哪里。检查the docs 以了解该选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2019-08-20
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 2017-01-14
      相关资源
      最近更新 更多