将数据传递给send.php - 选择选项文本和值

时间:2014-12-08 21:56:35

标签: javascript php forms

基本上我正在尝试调试这个:我有一个HTML表单和一个send.php,我可以从中提取数据,如

 $locridicare= addslashes($_GET['liv']); 
 $locreturnare=addslashes($_GET['ret']); 
 $codlocridicare=addslashes($_GET['locridicare']); 
 $codlocreturnare=addslashes($_GET['locreturnare']);

codlocridicare应该获得VALUE,而locridicare应该从名为locridicare的SELECT选项中获取TEXT。

相同的codlocreturnare和locreturnare,来自另一个选择。

我运行的表格:

<script>
function changelivrare (objDropDown)
{
document.getElementById("liv").value = objDropDown.value; 
}


function changereturnare (objDropDown)
{
document.getElementById("ret").value = objDropDown.value; 
}
</script>

然后是表格

<select name="locridicare" id="locridicare" onchange="changelivrare(this)">
<option value=""> --- Selectaţi --- </option>
<option value="3231">Aeroport Otopeni - Bucuresti</option>
</select>
<input type="hidden" name="liv" id="liv" />

<select name="locreturnare" id="locreturnare" onchange="changereturnare(this)" >
<option value=""> --- Selectaţi --- </option>
<option value="3231">Aeroport Otopeni - Bucuresti</option>
</select>
<input type="hidden" name="ret" id="ret" />

1 个答案:

答案 0 :(得分:0)

要获取所选选项的文字,请使用:

function changelivrare(objDropDown) {
    document.getElementById("liv").value = objDropDown.options[objDropDown.selectedIndex].innerHTML;
}

objDropDown.value是所选选项的值,而不是其文本。 objDropDown.options是选项的集合,objDropDown.selectedIndex是所选选项的位置。

我还建议你将这两个功能合二为一:

function textToHiddenInput(objDropDown, inputID) {
    document.getElementById(inputID).value = objDropDown.options[objDropDown.selectedIndex].innerHTML;
}

然后将HTML更改为:

<select name="locridicare" id="locridicare" onchange="textToHiddenInput(this, 'liv')">
...
<select name="locreturnare" id="locreturnare" onchange="textToHiddenInput(this, 'ret')" >