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

时间:2011-11-17 20:15:03

标签: php mysql

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

3 个答案:

答案 0 :(得分:1)

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

无论如何,在Joomla中,您应始终从视图中加载数据并将其分配给模板。由于joomla中的教程和最佳实践也告诉您应该从模型中缓存重新获取的数据,您可以简单地使用控制器预加载模型中的数据,使用它来查找插入数据库的“标签”和然后再继续查看结果......

答案 1 :(得分:0)

只需使用

echo '<option value="'.$row->trainingDate.'">'.$row->trainingDate.'</option>';

在最后一行,但整个方法看起来很狡猾。

  1. 您应该使用培训日期的ID而不是日期本身,这是更好的设计
  2. 您没有减少代码中的开放席位数。无论如何,尝试设计您的数据库以包含“容量”列,然后您可以以更一致的方式检查开放席位。

答案 2 :(得分:0)

我认为最好的办法是在数据库中创建一个具有id值的表,然后在尝试找出id的含义时,对该表进行连接。

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