Php 将下拉列表选择插入mysql数据库

Php 将下拉列表选择插入mysql数据库,php,mysql,Php,Mysql,有人能告诉我,当用户点击“注册”按钮时,如何将所选文本而不是下拉列表选择框的值插入mysql数据库。代码现在插入我正在渲染的行的id,但我需要插入值。对不起,如果我没有解释清楚的话。。非常感谢您的帮助 更新:有人能告诉我在成功插入确认页面后如何重定向吗 $db = &JFactory::getDBO(); $query = " INSERT INTO `jos_jquarks_persontraining` ( course_name, courseDate, user_id,

有人能告诉我,当用户点击“注册”按钮时,如何将所选文本而不是下拉列表选择框的值插入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>';

有两种方法可以做到这一点,第一种方法要求您更改选项的值。但这通常不是正确的方向。我要做的只是重新加载可以打印的值列表,循环它,直到找到与id值匹配的正确值。然后,获取要插入的标签,并以任何可能的方式将其保存到数据库中

无论如何,在Joomla中,您应该始终从视图加载数据并将其分配给模板。由于joomla中的教程和最佳实践也告诉您应该缓存从模型中检索到的数据,您只需使用控制器将数据预加载到模型中,使用它找到要插入数据库的标签,然后再次进入视图查看结果…

只需使用

echo '<option value="'.$row->trainingDate.'">'.$row->trainingDate.'</option>';
在最后第三行,但整个方法在我看来很可疑

你们真的应该使用训练日期的ID,而不是日期本身,这是更好的设计 您没有在代码中减少开放席位的数量。无论如何,试着将DB设计为包含容量列,然后可以以更一致的方式检查开放的座位。
我认为最好的办法是在数据库中有一个id为value的表,然后在试图找出id的含义时,连接到该表


当您提交表单时,您可以执行$\u POST,这将显示从表单发送的所有内容。如果你想进行额外的步骤,你需要在表单中创建隐藏字段来保存值,类似于当用户提交时,你需要将选项id与隐藏id匹配。

Cool stuff,是的,我正在尝试创建一个触发器来减少mysql表中的席位,但对于我正在构建的另一个表,我想插入培训id和报告日期。请帮助,我需要在成功插入后重定向。这里介绍了重定向示例:是的,这似乎是最好的主意,但我认为有一种方法可以使用post:echo.$row->trainingDate引用选择框的值。;当您提交表单时,您可以执行$\u POST,这将显示从表单发送的所有内容。如果你想进行额外的步骤,你需要在表单中创建隐藏字段来保存值,当用户提交时,你需要将选项id与隐藏id匹配。请参阅我更新的问题,你知道一旦插入失败,我如何重定向到特定页面吗?