我正在尝试POST一个由MySQL查询创建的表单选择下拉列表。问题是我需要获得VALUE和ID。我从DB创建下拉列表。我在提交doUpdate()之前在表单中使用Value for JS计算。我想在下一页上使用ID作为描述。我最初使用JS option = document.getElementById,但我想避免使用JS,因为ID是由查询生成的。
$query = 'select * from configurator where category = "SLK"';
$result = mysql_query($query);
echo'<select name="qtyG" id="SLK" onchange="doUpdate()">';
$num_results = mysql_num_rows($result);
for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo '<option value="';
echo $row['price'];
echo '" ';
echo 'id="';
echo $row['description'];
echo '">';
echo $row['description'];
echo '</option>';
}
echo'</select>';
同样,doUpdate正在计算定价总计,然后将值发布到数据库中。我还想为id创建一个POST,我正在使用两次描述。 getElementById的问题是你必须在JS页面上手动输入id是什么。
我很确定我将不得不使用JS,我正在寻求帮助,特别是如何将id转换为同一表单页面上的隐藏输入。
这是我开始创建的JS,但我只想让所选的id显示在隐藏的输入中。仅供参考,是的,我的代码是旧的,我没有编程10年,我只是回到它。
function changeDescription(){
var option=document.getElementById('SLK').value;
if(option=="A")
{
document.getElementById('field').value="A Selected";
}
else if(option=="B"){
document.getElementById('field').value="B Selected";
}
}
我不想使用if。我只想用所选的id值更新隐藏的输入。
<input type ='text' name="SLK" id ="SLK"/>
通过使用if选项方法,每次数据库信息更改为描述定价时,我都必须手动更新JS代码。
我希望我有意义。我回复时没有收到电子邮件通知,除非它是垃圾邮件而我找不到它。感谢您的帮助。
更新分辨率
感谢Kiran的帮助。这是我用来解决问题的代码。我把它输出到输入。
function changeDescription()
{
var select = document.getElementById('SLK');
if(select.selectedIndex >= 0)
{
/* OK, the user selected an option, or we pre-selected one */
var option = select.options[select.selectedIndex];
/* now option refers to the select option element */
document.getElementById('SLKfield').value=option['id'];
}
}
<input type ='hidden' name="SLKoption" id ="SLKfield" size="40" />
感谢所有回复的人。
答案 0 :(得分:0)
也许我误解了你的问题,但我认为不需要通过id获取选项元素。而是使用select
元素查找所选选项的值(和id)。在您的示例中,select元素的id为SLK
。要查看是否选择了任何选项,您可以检查selectedIndex
属性。 E.g。
var select = document.getElementById('SLK');
if(select.selectedIndex >= 0) {
/* OK, the user selected an option, or we pre-selected one */
var option = select.options[select.selectedIndex];
/* now option refers to the select option element */
alert('The id of the selected option is:' + option['id']);
alert('The value of the selected option is:' + option.value);
}
我希望这能让你开始。
答案 1 :(得分:0)
让你的PHP像这样
<?php
$query = 'select * from configurator where category = "SLK"';
$result = mysql_query($query);
?>
<select name="qtyG" id="SLK" onchange="doUpdate()">
<?php
while($row=mysql_fetch_array($result)) {
<option value="<?=$row['price']?>"><?=$row['description']?></option>
}?>
</select>
和Javascript函数
function changeDescription(){
var option=document.getElementById('SLK').value;
var sh_value=option+' Selected'
document.getElementById('field').value=sh_value;
}