我正在为我的网站构建一个opencart模块,并有一个页面,我需要一个'刷新'按钮和一个'继续'按钮,在那里我自己POST(在'刷新'按钮的情况下或使用'continue'按钮来bespoke2.php。我已经在下面添加了控制器和视图。不幸的是,当单击继续按钮时,我被重定向到正确的页面,但POST变量没有随附。刷新按钮工作好吧。任何人都可以告诉我哪里可能出错了,我花了好几个小时玩它并搜索了论坛,谷歌还没有拿出太多的东西?
这是form.php
<form name="frm" method="POST" action="">
<input type="text" name="size_width">
<input type="submit" name="submit1" class= "button" Value="<?=$button_continue?>" />
<input type="submit" name="submit2" class= "button" Value="<?=$button_refresh?>" />
这是controller.php
if (isset($this->request->post['submit1'])) {
$this->response->redirect($this->url->link('module/bespoke2'));
} elseif (isset($this->request->post['submit2'])) {
$this->data['input_width'] = ($this->request->post['size_width']);
else{}
这是控制器bespoke2.php的代码
$this->data['input_width'] = ($this->request->post['size_width']);
重定向似乎没有接过POST?任何帮助非常感谢。
答案 0 :(得分:2)
假设您有jquery可用(您应该使用默认的opencart安装),您可以使用以下内容(将其添加到视图的末尾)以在提交之前更新'url_to_submit_to'。
<script>
$("input[name=submit1]").click(function(event) {
event.preventDefault();
$('form[name=frm]').attr('action', '/url_to_submit_to').submit();
});
</script>
答案 1 :(得分:0)
不,我不认为重定向会重新发布&#39;形式变量。快速修复可能是手动将变量添加到重定向的查询字符串中。
if (isset($this->request->post['submit1'])) {
$this->response->redirect($this->url->link('module/bespoke2?size_width=' . $this->request->post['size_width']));
} elseif (isset($this->request->post['submit2'])) {
$this->data['input_width'] = $this->request->post['size_width'];
else { }
然后你可以在bespoke2.php中检索它,如下所示:
$this->data['input_width'] = $this->request->get['size_width'];
如果您认为这不是特别令人满意,我会考虑通过ajax手动将数据直接发布到正确的控制器而不是重定向。
答案 2 :(得分:0)
OpenCart使用具有重定向的会话数据,例如成功消息。 这也可能适用于您的情况。
$this->session->data['input_width'] = $this->request->post['size_width'];
答案 3 :(得分:0)
打开
/catalog/controller/account/register.php
更改
$this->redirect($this->url->link('account/customregister', '', 'SSL'));
如果您已经使用此类型传递
$this->response->redirect($this->url->link('product/product', 'product_id=50', ''));