簡體   English   中英

在數據庫中的select選項上顯示表中的其他值

[英]Displaying the other values in the table on select option from database

我有一個選擇選項,選擇一個品牌后,我可以成功獲取/顯示該品牌名稱,但是我還希望顯示其他值,例如價格,無論是否刷新頁面。

<?php
require_once 'config.php';
echo '<select class="form-control action" name="tran_description" value="<?
php echo $tran_description; ?>" style="background-color:#F0F0F0">';
$sql = mysqli_query($mysqli, 'SELECT * FROM products order by product_id');
while ($row = $sql->fetch_assoc()){
echo '<option id="' . $row['product_id']  . '"';
echo ' value="' . $row['description'] . '" ';
echo ' value="' . $row['price'] . '" ';

if($row['description'] == $tran_description) {
if($row['price'] == $tran_price) {
$tran_price =  $row['price'];
echo ' selected="selected"'; 
}
}

if($row['product_id'] == $row['description']) {

echo ' selected="selected"'; 
}

echo '>';
echo $row['description'];
echo '</option>';         

}
echo '</select>';

?>

我可以得到描述的價值,但我無法獲得價格。 在一個代表品牌或描述的選擇選項中,我還希望將所選品牌的價格分配給一個變量,這樣我就可以在后台代碼中進行算術運算而無需查看它。

您使用了錯誤的HTML結構,只有第一個屬性被使用,而另一個屬性在DOM中被忽略。在單個選擇中存儲多個值的正確方法如下所示:

<select name="">
    <option value="{'num_sequence':[0,1,2,3]}">Option one</option>
    <option value="{'foo':'bar','one':'two'}">Option two</option>
</select>

您的情況應該是這樣的:

echo '<option id="' . $row['product_id']  . '"';
// echo ' value="{ /"description:/"' . $row['description'] . ', /"price:/"' . $row['price'] . ' }" ';
echo ' value="' . 
    json_encode(['description'=>$row['description'], 'price'=>$row['price']) . 
    '">";

然后要獲得的價值是:

$description = $_POST['NameOfSelectInput']['description'];
$price = $_POST['NameOfSelectInput']['price'];

例如,如果要使用jQuery獲取javascript中的值,則可以執行以下操作:

var value = JSON.parse($('#select_id').val()); // use id of your select control
var price = value.price;
var description = value.description;

您應該進行適當的錯誤檢查...

有關更多詳細信息,請參見此處: Select標記中的選項可以攜帶多個值嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM