我想要实现的功能是让用户使用 e-junkie 从我的网站购买唯一的代码。付款完成后,e-junkie 将处理一个脚本,将代码发送到 MySQL 数据库表。
购买后,他们将被重定向到网站上的页面,通过填写表格来激活他们的代码。为了激活他们的代码,他们需要在三个文本字段中输入数据:
- 名字
- 姓氏
- 唯一代码
该表单已使用 Fabrik 设置并在网站上完美显示。
我现在需要的是,当提交表单时,我需要它连接到存储唯一代码的数据库,在数据库表中搜索匹配的 firstname
,lastname
和唯一代码
,如果找到匹配则返回成功消息,如果未找到匹配则返回失败消息。
Fabrik 允许在提交表单时运行 PHP 插件脚本,我将为表单上的每个字段使用单独的插件。
到目前为止,我已经提出了下面的代码片段,该代码片段将在提交表单时执行。我只是尝试在此阶段验证表单上的 firstname
字段以使其正常工作。一旦它工作,我将复制代码并将其调整为其他字段(例如 lastname
和 uniquecode
)。
问题是我无法让它工作。它使用 Joomla 的 JFactory/getDBO 连接到数据库。
我的表名称是travelcodes
表单上的字段为 firstname
、lastname
和 uniquecode
表格上的列也是 firstname
、lastname
和 uniquecode
$firstname = '{travelcodes___firstname}';
$value = '{tablename___firstname}';
$db =JFactory::getDBO();
$query=("SELECT firstname FROM travelcodes where field = '$firstname'");
$db->setQuery($query);
$response = $db->loadResult();
if ($response == $firstname) {
return true;
} else {
return false;
}
任何有关此问题的帮助将不胜感激。
谢谢。
贝利
最佳答案
使用以下设置没有问题
我认为您需要在 ('you_element') 之前添加 JRequest::getVar 并将设置设置为 onBeforeProcess
$db = JFactory::getDbo();
$date = date("Y-m-d H:i:s", time());
$value = JRequest::getVar('off_line_ap___offline_reason');
$user =& JFactory::getUser();
$uid = $user->id;
$db->setQuery("INSERT INTO d2_exchange_log (date_time, part, quantity, user_id, purpose) VALUES ('{$date}', '{$value}', '99','{$uid}', 'Test')");
$submissionsNo=$db->loadResult();
关于php - 如何使用 Fabrik(joomla 组件)表单连接到数据库表并搜索匹配并返回结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035608/