在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表单,以便他们可以提交表单,并将值存储到数据库中。任何帮助和建议都会非常明显。感谢
答案 0 :(得分:1)
首先,我建议您在模块内部进行处理,例如在init()
函数中,您可以使用$this->context->link->getModuleLink('myModuleName');
获取模块链接并将其添加到表单操作属性,所有变量都可以使用$this->context->smarty->assign()
进行分配。
在数据库中存储值是一个非常广泛的问题。您必须提供更多有关它的详细信息。
查看Prestashop的一些教程,例如: Creating a Prestashop Module。你会在那里找到你的大部分答案。