Prestashop smarty为用户创建表单并将输入字段保存到数据库中?

时间:2014-06-07 08:22:38

标签: module smarty prestashop

在Prestashop我正在做一个模块。在该模块中,我有视图文件(smarty模板)。我很聪明,我正在做表格,以便用户可以从前端提交表格。现在,当用户填写表单并单击“提交”时,表单应将所有值保存到数据库中。所以对于那个聪明的我做了一个这样的表格

<div id="content" class="form-wrapper" >
  <div class="form-content">
    <input type="text" id="name" name="name" placeholder="Name" /> <br />
    <input type="text" id="email" name="email" placeholder="email"/> <br />
    <input type="text" id="phone" name="phone" placeholder="Phone Number"/> <br />
    <input type="submit" name="submit-query" id="submit-enquiry" value="submit" />
  </div>
</div>

并且在提交值的文件中,我已经使我的代码像这样

<?php
include '../../../config/settings.inc.php';
include '../../../config/defines.inc.php';
include '../../../config/config.inc.php';
include(dirname(__FILE__).'/../../../../init.php');


if(Tools::getValue('submit-query')) {
  $this->_html .=$this->displayConfirmation($this->l('Settings updated successfully'));
}
  else {
    $this->_html .= $this->displayError($this->l('You Have Some Errors'));
  }
?>

现在点击我的提交按钮时显示如下错误

Fatal error: Using $this when not in object context in file.php on line 11

现在有人可以告诉我这里的问题是什么,如何为前端用户创建一个smarty表单,以便他们可以提交表单,并将值存储到数据库中。任何帮助和建议都会非常明显。感谢

1 个答案:

答案 0 :(得分:1)

首先,我建议您在模块内部进行处理,例如在init()函数中,您可以使用$this->context->link->getModuleLink('myModuleName');获取模块链接并将其添加到表单操作属性,所有变量都可以使用$this->context->smarty->assign()进行分配。

在数据库中存储值是一个非常广泛的问题。您必须提供更多有关它的详细信息。

查看Prestashop的一些教程,例如: Creating a Prestashop Module。你会在那里找到你的大部分答案。