当有用户点击按钮注册时,有人可以告诉我如何将所选文本而不是下拉列表(选择框)的值插入到mysql数据库中。代码现在插入我正在渲染的行的id,但我需要插入值。对不起,如果我不是那么解释..很多帮助表示赞赏。 !
更新:有人告诉我如何在成功插入确认页面后重定向?????
$db = &JFactory::getDBO();
$query = "
INSERT INTO
`jos_jquarks_persontraining`
(
course_name,
courseDate,
user_id,
employeeNumber,
department,
name,
timeStamp
)
VALUES
(
'{$courseTitle}',
'{$varcourseDate}',
'{$id}',
'{$username}',
'{$department}',
'{$name}',
'{$acknowledge}',
'{$vardate}'
)";
$db->setQuery($query);
$db->query();
if($db->getErrorNum()) {
JError::raiseError( 500, $db->stderr());
}
}
?>
<form name="quiz_info" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<?php
echo JText::_('Please select the date:');
$database= &JFactory::getDBO();
$database->setQuery('SELECT training_id,CONCAT(trainingDate,"-",trainingHour) AS trainingDate FROM training WHERE openSeats > 0');
$result = $database->loadObjectList();
echo '<select name="dateSelectBox">';
foreach ($result as $row) {
echo '<option value="'.$row->training_id.'">'.$row->trainingDate.'</option>';
}
echo '</select>';
答案 0 :(得分:1)
您有两种方法可以做到这一点,第一种方法要求您更改OPTION的VALUE。但这通常不是正确的方法。我要做的只是重新加载您可以打印的值列表,循环它直到找到与id的值匹配的正确值。然后,取出要插入的LABEL,并以任何可能的方式将其保存到数据库中。
无论如何,在Joomla中,您应始终从视图中加载数据并将其分配给模板。由于joomla中的教程和最佳实践也告诉您应该从模型中缓存重新获取的数据,您可以简单地使用控制器预加载模型中的数据,使用它来查找插入数据库的“标签”和然后再继续查看结果......
答案 1 :(得分:0)
只需使用
echo '<option value="'.$row->trainingDate.'">'.$row->trainingDate.'</option>';
在最后一行,但整个方法看起来很狡猾。
答案 2 :(得分:0)
我认为最好的办法是在数据库中创建一个具有id值的表,然后在尝试找出id的含义时,对该表进行连接。
当您提交表单时,您可以执行$ _POST,这将显示从表单发送的所有内容。如果你想要进行额外的步骤,你需要在保存值的表单中创建隐藏字段,这与用户提交时需要将该选项id与隐藏ID相匹配。