CakePHP表单提交不起作用

3

我刚开始使用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>

帖子控制器:

    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阻止表单提交。感谢您的帮助!

我认为你应该使用 -> array('controller' => 'Posts', .... 注意 P 是大写的。 - Pratik Joshi
我已经添加了在浏览器中看到的HTML。 - user3758298
它正常工作,先生 -> http://jsfiddle.net/81uowjvw/1/ 相同代码。 - Pratik Joshi
请提供网址,以便我查看原因。 - Pratik Joshi
1
这就是我所说的-> 如果你的 HTML 代码在 HTML 中工作,它也应该在 CakePHP 中工作 :)。我知道某些 JS 代码会禁用提交。无论如何,欢迎。 - Pratik Joshi
显示剩余3条评论
2个回答

0

使用submit,例如 ->

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

它有效,我一直在使用。

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

如果您正在指定类型为“submit”的按钮,则像这样是可以的 ->

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

但在你的情况下,你有 $this->Form->submit.. 所以你不需要明确指定它。


是的,我一直在尝试不同的方法,而 'type' => 'submit' 是从我尝试使用 $this->Form->button 时留下来的。现在我已经将其删除,但仍然存在相同的问题。 - user3758298
@user3758298,如果你的HTML代码在HTML中可以工作,那么在CakePHP中也应该可以工作 :)。请再次检查<form>标签,并像我一样将其粘贴到jsfiddle中,检查表单是否已提交。 - Pratik Joshi

0

试一下这个

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接