我有一个联系我们表单,用户输入数据并提交。需要在控制器功能中访问此数据,以便我可以向管理员发送邮件,通知最近收到的用户请求。
但是当我按下提交按钮时,没有任何反应。表单只是重新加载,并向用户显示联系人表单(查看页面)。我不知道为什么数据没有传递给控制器功能。
我是CakePHP框架的新手,我使用CakePHP3进行开发。
这是我的表格:
$dateexpired = $_POST['dateexpired'];
$new_dateexpired = date("Y-m-d",strtotime($dateexpired));
$dateissued = $_POST['dateissued'];
$new_dateissued = date("Y-m-d",strtotime($dateissued));
我的控制器功能是:
<?php echo $this->Form->create(null, ['url' => ['controller' => 'Pages', 'action' => 'contactus']]); ?>
<div class="col-md-6">
<?php echo $this->Form->input('fname', ['placeholder' => 'Your name.' , 'id' => 'fname', 'required' => 'required']); ?>
</div>
<div class="col-md-6">
<?php echo $this->Form->input('mail', ['placeholder' => 'Your email.' , 'id' => 'mail', 'required' => 'required']); ?>
</div>
<div class="col-md-6">
<?php echo $this->Form->input('subject', ['placeholder' => 'Write something.', 'id' => 'subject']); ?>
</div>
<div class="col-md-9">
<?php echo $this->Form->button(__('Submit')); ?>
</div>
<?php echo $this->Form->end(); ?>
有谁能告诉我我犯的错误?
答案 0 :(得分:1)
我认为您的表单正在提交,但不是通过post方法。所以我想说的是,请在提交表格之前进行更改。
$pages ='';
if ($this->request->is('post'))
{
echo "Request is post";die;
$pages = $this->request->data('Contact');
}else{
echo "request is not post";die;
}
$this->set(compact('pages'));
$this->set('_serialize', ['pages']);
现在检查,即在显示屏上打印。然后我可以帮助你。
记住: - 填写表格,然后在更改控制器方法后,再按提交方法。