有没有办法将<option>
名称中的文本传递给php?
<form action="process.php" method="post">
<select name="select1">
<option value="1" name="apple">APPLE</option>
<option value="2" name="lemon">LEMON</option>
<option value="3" name="grapes">GRAPES</option>
</select>
<input type="submit" value="submit"/>
</form>
我希望将简单的水果名称或大写字母传递给php。
我无法更改select标记中的值,因为它们用于其他函数。
我搜索了很多网站,但他们所说的都是关于传递值的文本,而不是名称的文本。
答案 0 :(得分:2)
<option>
代码
我的代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<form action="process.php" method="post">
<select name="select1" id="select1">
<option value="1" name="apple">APPLE</option>
<option value="2" name="lemon">LEMON</option>
<option value="3" name="grapes">GRAPES</option>
</select>
<input type="hidden" id="hidField" name="xyz" value="" />
<input type="submit" value="submit" />
</form>
<script>
//function test(){
var select1= document.getElementById("select1");
$("#select1").change(function(){
//alert(select1.options[select1.selectedIndex].text);
//alert(select1.options[select1.selectedIndex].getAttribute("name"));
var res=select1.options[select1.selectedIndex].getAttribute("name");
document.getElementById('hidField').value=res; //Javascript code
//$('#hidField').val(res); //Jquery code
return false;
});
//}
</script>
如果您确定要名称字段,请使用getAttribue("name")
代替text
代码:
alert(select1.options[select1.selectedIndex].getAttribute("name"));
想要获取<option>
标记的内部数据
代码:
alert(select1.options[select1.selectedIndex].text);
答案 1 :(得分:1)
使用AJAX在单独的函数中传递name-Attributes。您所要做的就是在选择标签中添加ID属性(例如“select1”),并读出所选选项的“textContent”属性(大写字母的水果)。然后将函数“sendToServer”传递给select-tag的“onchange”事件。
function sendToServer()
{
var select = document.getElementById("select1");
var sel = select.options[select.selectedIndex];
var name = select.getAttribute("textContent");
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
}
}
xmlhttp.open("GET", "../PHPScripts/getData.php?q=name", true);
xmlhttp.send();
}
HTML:
<select name="select1" id="select" onchange="sendToServer();">
<option value="1" name="apple">APPLE</option>
<option value="2" name="lemon">LEMON</option>
<option value="3" name="grapes">GRAPES</option>
</select>
<input type="submit" value="submit"/>
</form>
我知道,这不是你要求的,但也许有帮助。