POST表单选择ID,AND值。 SELECT下拉列表是从查询循环创建的

时间:2014-02-28 18:55:35

标签: javascript php mysql forms select

我正在尝试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" />

感谢所有回复的人。

2 个答案:

答案 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;
}