2011-11-17 136 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

相關問題