我刚刚开始使用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阻止提交表单感谢您的帮助!
答案 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'));