CakePHP表单提交不起作用

时间:2015-02-05 09:28:52

标签: php cakephp

我刚刚开始使用CakePHP,我想创建一个表单,在提交时它调用控制器中的一个函数。我正在使用CakePHP 2.6版

我目前的守则是:

视图:

<div class="modal-body">
    <?php echo $this->Form->create('Tweet', array('url' => array('controller' => 'posts', 'action' => 'postTweet'))); ?>
    <?php echo $this->Form->textarea('Tweet', array('class' => 'form-control','rows' => '3', 'placeholder' => "what's happening?", 'maxlength' => '140', 'label' => false)); ?>
    <?php echo $this->Form->button('Close', array('class' => 'btn btn-default', 'data-dismiss' => 'modal', 'type' => 'button'));?>
    <?php echo $this->Form->submit('Tweet', array('class' => 'btn btn-primary', 'type' => 'submit', 'div' => false)); ?>
    <?php echo $this->Form->end(); ?>
</div>

PostsController:

    public function postTweet(){
        //check if post is being made
        if ($this->request->is('post')) {
            //do something
        }
    }
页面上的

HTML:

<form action="/posts/postTweet" id="TweetIndexForm" method="post" accept-charset="utf-8">
    <div style="display:none;">
        <input name="_method" value="POST" type="hidden">
    </div>              
    <textarea name="data[Tweet][Tweet]" class="form-control" rows="3" placeholder="what's happening?" maxlength="140" id="TweetTweet"></textarea>
    <button class="btn btn-default" data-dismiss="modal" type="button">Close</button>            
    <input class="btn btn-primary" value="Tweet" type="submit">              
</form>          

问题是当我点击提交按钮时没有任何反应,我已经在Firebug中检查过并且控制台选项卡中没有错误,网络选项卡中没有发出POST,也没有错误记录到错误登录。任何帮助都将非常感谢。

编辑: 解决了我有JavaScript阻止提交表单感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

使用提交 - >&gt;

echo $this->Form->submit('Tweet', array('label' => false, 'name' => 'submit', 'class' => 'grayBTN', 'title' => '', 'alt' => 'Submit', 'error' => false));

它有效我一直都在使用它。

您的提交问题'type' => 'submit'在您的代码中使用,您也指定了$this->Form->submit

如果您使用提交类型指定Button,那么它就像 - &gt;

echo $this->Form->button('Submit Form', array('type' => 'submit'));

但是在你的情况下你有$ this-&gt; Form-&gt;提交..所以你不需要明确地指定它。

答案 1 :(得分:0)

试试这个

echo $this->Form->end(array('label' => 'Tweet','div' => false,'class' => 'btn btn-primary'));