2017-07-30 60 views
0

我有一个选择选项,选择一个品牌后,我成功地获得/显示品牌名称,但我也希望其他值显示像价格,有或没有刷新页。在表格中显示其他值从数据库选择选项

<?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>'; 

?> 

我可以得到描述的价值,但价格我couldnt。在代表品牌或描述的一个选择选项中,我也希望将该品牌的价格值分配给一个变量,这样我就可以在后台代码中进行算术运算而不必看到它。谢谢。

回答

0

只使用正在使用的第一属性,而另一个则在DOM .The正确的方式被忽略多个值存储在一个单一的选择错误的HTML结构是这样的:

<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']; 

如果你想在JavaScript中的值,使用jQuery,例如,你可以这样做:

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

你应该做适当的错误检查...

更多详细信息请点击这里: Can an Option in a Select tag carry multiple values?

+0

我的意思是,在代表品牌或描述的一个选择选项中,我也希望将该品牌的价格值分配给一个变量,这样我就可以在后面的代码中进行算术运算而不会看到它。 – Romeo

+0

这就是他所暗示的。我会通过使用json_encode来修改选项值。要提取数据,请在选择值后使用JSON.parse(如果在不重新加载的情况下显示)。斜杠也是正斜杠,应该是反斜杠。 – RichGoldMD

+0

我试图用你的代码Islan Mahajan,但我仍然不能。 – Romeo

相关问题