0

我正在使用Joomla!组件Fabrik

我想要获得的功能是让用户使用 e-junkie 从我的网站购买唯一代码。付款完成后,e-junkie 将处理一个脚本,将代码发送到 MySQL 数据库表。

购买后,他们将被重定向到网站上的页面,以通过填写表格激活他们的代码。为了激活他们的代码,他们需要在三个文本字段中输入数据:

  • 唯一代码

表单已经用 Fabrik 设置好并在网站上很好地显示。

我现在需要的是在提交表单时,我需要它连接到存储唯一代码的数据库,在数据库表中搜索匹配firstname,如果找到匹配lastnameunique code返回成功消息,如果找到则返回失败消息找不到匹配项。

Fabrik 允许在提交表单时运行 PHP 插件脚本,我将为表单上的每个字段使用单独的插件。

到目前为止,我已经想出了下面的代码片段,它将在提交表单时执行。我只是firstname在此阶段尝试验证表单上的字段,以使其正常工作。一旦它工作,我将复制代码并将其调整为其他字段(例如lastnameuniquecode)。

问题是我无法让它工作。它使用 Joomla 的 JFactory/getDBO 连接到数据库。

我的表名是travelcodes 表单上的字段是 , firstname,表lastnameuniquecode 的列也是firstname,lastnameuniquecode

$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;
}

对此的任何帮助将不胜感激。

谢谢。

贝利

4

1 回答 1

0

我使用以下设置没有问题

我认为您需要在 ('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();
于 2013-07-16T04:14:16.477 回答