我想動態生成html select options
使用PHP的基礎上,無論其存儲在MySQL數據庫。PHP:foreach循環裏面的PHP變量?
存儲名爲sizez
的數據的列。
在該列中的數據被存儲,像這樣:
small,large,xlarge,xxlarge
所以基本上數據由逗號分隔。
現在在我的php頁面我只需將數據拖動到我的頁面上,並使用while loop
對存儲在mysql數據庫中的每個產品進行顯示。
我遇到的問題是我需要根據每個項目的sizez
列生成選擇選項下拉列表。
因爲我使用的是explode()
函數,它也會成功生成選擇選項。
但是,問題是它只會從第一個sizez
列中獲取字符串並忽略剩餘的項目。但它也會顯示其他項目的第一列中的字符串,並重復它們!
這是我的代碼:
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id = $row["id"];
$sizez = $row["sizez"];
$sizez = preg_replace('/\.$/', '', $sizez); //Remove dot at end if exists
$array = explode(',', $sizez); //split string into array seperated by ','
foreach($array as $value) //loop over values
{
//echo $value . PHP_EOL; //print value
$sizesOption .='<option>'.$value.'</option>';
}
$all_list .="<select>
'.$sizesOption.'
</select>";
,所以我認爲把$all_list .=
內foreach($array as $value)
但這種方法是錯誤的。
可能有人請告知這個問題?
任何幫助,將不勝感激。
編輯:
預期的結果應該是這樣的:
item one item two item three
small large small
large xxlarge xxlarge
然而,我的代碼我得到的結果是這樣的:
item one item two item three
small small small
large large large
small small
large large
small
large
所以基本上,它會得到第一個項目的尺寸列,它會在其他項目的選擇選項內重複它,就像上面的例子。
因此,如果他們重複,預期的結果是什麼?添加一些關於你期望得到的數據。 – Pinx0 2015-03-02 14:59:44
不要在一個字段中存儲多個值(「small,large,xlarge,xxlarge」) - 谷歌關於數據庫的正常形式...... – MilanG 2015-03-02 15:01:06
有一些奇怪的方式你concat字符串。嘗試:'$ all_list。=「」;' – 2015-03-02 15:02:06