2011-11-17 105 views
0

有人可以告诉我如何插入选定的文本不是一个下拉列表中的值(选择框)到MySQL数据库时,用户点击该按钮注册。现在的代码插入我正在渲染的行的id,但我需要插入值。对不起,如果我不是这样解释..很多帮助表示赞赏。 !插入下拉列表中选择到MySQL数据库

更新:有人可以告诉我怎么succesfulling插入到一个确认页面后重定向?????

$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

在倒数第三行只需使用

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

,但整个方法看起来相当可疑我。

  1. 你真的应该使用ID训练日期,而不是日期的自己,这是更好的设计
  2. 你是不是减少了代码开放的席位数。无论如何,尝试设计您的数据库以包含“容量”列,然后您可以以更一致的方式检查开放式座位。
+0

很酷的东西,是的我试图创建一个触发器,以减少在MySQL表中的席位,但对于这个我正在建设的其他表我想插入培训的ID和报告日期 – user959443

+0

能否请你帮帮忙,我需要后成功地插入 – user959443

+0

重定向是这里描述为例重定向:http://www.plus2net.com/php_tutorial/php_redirect.php – Erbureth

1

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

在的Joomla无论如何,你应该始终从视图中加载数据并将其分配给您的模板。由于的Joomla教程和最好的初步实践还告诉你,你应该从你的模型缓存你retrived数据,你可以简单地使用你的控制器预加载在模型中的数据,用它来找到你的“标签”来插入到数据库中,然后再次去到您的视图结果...

0

我认为你最好的选择是在你的数据库中有一个表有一个id值,然后当试图找出id的含义时,对该表做一个连接。

当您提交表单,你可以做$ _ POST,并且会告诉你,从形式发送的一切。如果你想要进行额外的步骤,你需要在表单中创建隐藏的字段来保存值,当用户提交你时需要将该选项id与隐藏的id相匹配。

+0

是,这似乎是个好主意,但我认为有是一种使用post引用选择框的值的方法:echo''; – user959443

+0

当您提交表单时,您可以执行$ _POST并且会显示从表单发送的所有内容。如果你想进行额外的步骤,你将需要在表单中创建隐藏的字段,将保存值,沿着

+0

查看我更新的问题,你知道一旦插入变为低谷后我怎么能重定向到特定的页面? – user959443

相关问题