我需要结合一些php和html技巧来使表单的典型选择段包含每个表单的多个值。产品的ID,标记的ID和标记的“名称”。这允许管理用户根据利润率选择产品价格。提交表单会为select中的三个值生成空白值。
<?php
$factor_grab = "
SELECT * FROM product_latest_price_factor AS t1
WHERE product_id = '".$product_id."'";
//echo $factor_grab.'<br>';
$factor_result = mysql_query($factor_grab) or die (mysql_error());
while($frow=mysql_fetch_array($factor_result))
{
$level = $frow['level'];
$percentage = $frow['percentage'];
$value = $frow['value'];
$price_level_id = $frow['price_level_id'];
//This piece does not work
echo '<option value="{level:\''.$level.'\', price_level_id:\''.$price_level_id.'\', percentage:\''.$percentage.'\'}">'.$level.' - %'.number_format($percentage,2).' - $'.$value.'</option>';
}
?>
我认为这次我已经钉了它,因为我可以看到表单中的值,并通过Google Chrome检查选项,但我认为这是因为我的报价已经失控。您可以看到每个选项值应该存储三个变量。 Level,Price_level和Price_level_id。 (价值仅供用户明确查看产生的价格。)如何回应可以适用于所有三种选项的选项?这对我来说是一个非常强大的解决方案。
答案 0 :(得分:1)
正确逃避事情,避免问题:
echo '<option value="',
htmlspecialchars(
json_encode(
array(
'level'=>$level,
'price_level_id'=>$price_level_id,
'percentage'=>$percentage
)
)
),
'">',
htmlspecialchars($level . ' - %' . number_format($percentage,2)),
htmlspecialchars(' - $' . $value),
'</option>';
这很麻烦......只是想在这里向你展示这个想法。你应该稍微清理一下这些东西。最好只保留一个ID在该选项值中,并将这些其他内容从JavaScript数组或对象中提取出来,或者稍后将它们保存在哪里。
另外,请确保您在查询中转义数据。就目前而言,您可能会受到SQL注入的影响。学习将PDO用于准备好的查询以避免此问题。
答案 1 :(得分:0)
您如何检索这些值?你在使用json_decode
吗?因为如果你那么你需要确保你的JSON首先是有效的。试试这个:
echo '<option value="'.htmlspecialchars(json_encode(compact("level","price_level_id","percentage"))).'">'.$level.' - %'.number_format($percentage,2).' - $'.$value.'</option>';
然后使用json_decode
将值输入数组。