2016-11-20 208 views
1

雖然我已經研究過了,但我找不到任何解決方案。我需要將數據庫值(「Default」)作爲下拉列表的預選值。從MySQL數據庫中預先選擇的下拉列表值

<select name="listCustomer" id="listCustomer"> 
    <?php 
    $sql = mysqli_query($connection,"SELECT customer_name FROM customers"); 
    while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)){ 
    echo "<option value=\"" . $row['customer_name'] . "\">" . $row['customer_name'] . "</option>";} 
    ?> 
</select> 

你能幫我解決嗎?

回答

1

回聲之前只需創建一個變量,像這樣:

$selected = ((strtolower($row['customer_name']) == 'default') ? 'selected' : ''); 

然後回聲改成這樣:

echo '<option '.$selected.' value="'.$row['customer_name'].'">'.$row['customer_name'].'</option>'; 
+0

感謝朋友,也有一些不必要的'「'痕跡在你的代碼。除了那個以外,這解決了我的問題。但現在的問題是所選擇的價值是不會到數據庫現在,始終以‘默認’被插入到數據庫你的 – EKBG

+0

編輯的代碼: '$ SQL = mysqli_query($連接, 「SELECT CUSTOMER_NAME FROM客戶」); 而($行= mysqli_fetch_array($ SQL,MYSQLI_ASSOC)){ \t。 \t \t \t \t \t \t \t \t \t $ selected =((strtolower($ row ['customer_name'])=='default')? 'selected':''); echo''。$行[ 'CUSTOMER_NAME']'。';}' – EKBG

+0

這是錯誤的。我的示例中的雙引號不是多餘的。所有的屬性內容都應該用雙引號括起來。 – junkfoodjunkie

1

這可以用在CUSTOMER_NAME if語句來完成

$sql = mysqli_query($connection,"SELECT customer_name FROM customers"); 
while ($row = mysqli_fetch_array($sql,MYSQLI_ASSOC)){ 
    if($row["customer_name"] === "Default"){ 
     echo "<option value=\"" . $row['customer_name'] . "\" selected>" . $row['customer_name'] . "</option>"; 
    } else { 
     echo "<option value=\"" . $row['customer_name'] . "\">" . $row['customer_name'] . "</option>"; 
    } 
} 
?> 

請注意第一個回波上的選定標籤。

+0

感謝朋友,您錯過了在'while'循環中'$ row'之後的「=」標記。除此之外,這解決了我的問題。但現在的問題是選定的值現在不會進入數據庫,總是將「Default」插入到數據庫中。 – EKBG

+0

這是因爲您插入「默認」作爲選定的選項的值。 –

+0

是的,但我怎樣才能將選擇值插入數據庫,忽略默認值? – EKBG

0
$query="SELECT customer_name FROM customers"; 
$result = @mysql_query ($query); 
echo "<select name=customer_name value=' '>"; 
while([email protected]_fetch_array($result)){ 
echo "<option value=$drop[customer_name]>$drop[customer_name]</option>"; 
} 
echo "</select>"; 
+0

如果您選擇任何值,那麼這肯定會插入到您的表中 –

相關問題