【问题标题】:CakePHP 3 refresh page after form submit表单提交后CakePHP 3刷新页面
【发布时间】:2016-09-19 09:35:24
【问题描述】:

我使用 cakePHP 3 创建了一个网站。我使用表单助手和邮件发件人在联系部分创建了一个邮件表单。邮件工作正常,但是当我单击发送(提交)按钮时,它会重新加载联系页面并保持输入字段填写。

我想要的是不刷新页面,清除表单字段并显示模式。这可能吗? ¿我该怎么做?

我不知道你们是否需要任何代码,所以如果你需要它,我会提供它。

谢谢。

【问题讨论】:

  • I want is to not refresh the page - 这意味着您使用 js 提交表单。您应该始终在此处输入问题代码。

标签: forms cakephp submit


【解决方案1】:

如果您想在提交表单后清除字段,您可以通过两种方式进行:

在视图中:

<?= $this->Form->input('email',['value' => '']); ?>

或在调用执行方法后在控制器方法中取消设置您提交的数据,如下所示:

$contact = new ContactForm();
if ($contact->execute($this->request->data)) {
   $this->request->data = [];

}

如果发送成功,你可以设置成功闪信或其他变量,然后在视图中显示闪信或模态

$this->Flash->success(__('The Message has been sent.'));
// or
$this->set('modal', true);

在你看来

<?php if(isset($modal) && $modal == true): ?>
   YOUR MODAL HERE
<?php endif; ?>

【讨论】:

  • 感谢您的回答,但没有一个清除字段解决方案有效。对于第一个,页面仍然刷新并填充了输入。对于第二个,我生成了一个提交错误。
  • 您想在发布后从页面中删除表单?
  • 不,我想在发送电子邮件后清除输入字段。谢谢
  • @IanOrtega 我更新了第二个解决方案。现在两者都有效。 screencast-o-matic.com/watch/cDh0DZieS6
猜你喜欢
  • 2012-05-25
  • 1970-01-01
  • 2013-09-21
  • 2013-02-09
  • 2011-01-27
相关资源
最近更新 更多