将选项中的“名称”文本传递给php表单

时间:2013-11-25 10:50:01

标签: php html post

有没有办法将<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标记中的值,因为它们用于其他函数。

我搜索了很多网站,但他们所说的都是关于传递值的文本,而不是名称的文本。

2 个答案:

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

我知道,这不是你要求的,但也许有帮助。