Php 三个相同名称的select标记的读取选项

Php 三个相同名称的select标记的读取选项,php,javascript,html,Php,Javascript,Html,我如何拥有三个或更多具有相同名称的select标记(在我的程序中,select标记是动态生成的),并独立选择所选的选项。 我有一个循环,我的php读取一个sql表,并为每一行创建一个select标记和一个按钮 <select name="vote"> <option value="1">1</vote> <option value="2">2</vote> <option value="3">3<

我如何拥有三个或更多具有相同名称的select标记(在我的程序中,select标记是动态生成的),并独立选择所选的选项。 我有一个循环,我的php读取一个sql表,并为每一行创建一个select标记和一个按钮

<select name="vote">
    <option value="1">1</vote>
    <option value="2">2</vote>
    <option value="3">3</vote>
</select>

<input type="button" onclick="vote()">

1.
2.
3.
假设我的sql表中有3行,那么将创建3个带有按钮的select标记

现在我的问题是,我如何才能看到select标签选择了什么选项

有人能帮我吗


Zeeshan

如果它们具有相同的名称,那么区分它们的唯一方法就是让它们的所有值对于特定的select元素都是唯一的

如果这是不可能的,那么你必须给他们不同的名字(
name=“vote[]”


此外,PHP的一个“功能”要求,如果有多个同名元素,则名称必须以“[]”字符结尾,以便访问多个提交的值。

如果它们具有相同的名称,那么区分它们的唯一方法就是让它们的所有值对于特定的select元素都是唯一的

如果这是不可能的,那么你必须给他们不同的名字(
name=“vote[]”


此外,PHP的一个“功能”要求,如果您有多个同名元素,则名称必须以字符“[]”结尾,以便访问多个提交的值。

如果表单中有多个元素具有相同的
名称
属性,则它们将成为一个集合(本质上是一个数组)在DOM中

那么,在哪里可以选择这样一个呢

<form name="test">
  <select name="example"></select>
</form>
<form name="test">
  <select name="example"></select>
  <select name="example"></select>
  <select name="example"></select>
</form>
document.forms.test.example[0];
document.forms.test.example[1];
document.forms.test.example[2];
现在,如果你有两个或更多,像这样

<form name="test">
  <select name="example"></select>
</form>
<form name="test">
  <select name="example"></select>
  <select name="example"></select>
  <select name="example"></select>
</form>
document.forms.test.example[0];
document.forms.test.example[1];
document.forms.test.example[2];
编辑

哦,在PHP端,除非在名称中添加
[]
,否则它不会识别多个值-这告诉PHP不要替换相同的键名值,而是将它们用作数组

<form name="test">
  <select name="example[]"></select>
  <select name="example[]"></select>
  <select name="example[]"></select>
</form>

然后,您可以这样读取这些值

<?php

$exampleArray = $_GET['example'];
// you can now loop over $exampleArray or whatever.

当表单中有多个元素具有相同的
名称
属性时,它们将成为DOM中的一个集合(本质上是一个数组)

那么,在哪里可以选择这样一个呢

<form name="test">
  <select name="example"></select>
</form>
<form name="test">
  <select name="example"></select>
  <select name="example"></select>
  <select name="example"></select>
</form>
document.forms.test.example[0];
document.forms.test.example[1];
document.forms.test.example[2];
现在,如果你有两个或更多,像这样

<form name="test">
  <select name="example"></select>
</form>
<form name="test">
  <select name="example"></select>
  <select name="example"></select>
  <select name="example"></select>
</form>
document.forms.test.example[0];
document.forms.test.example[1];
document.forms.test.example[2];
编辑

哦,在PHP端,除非在名称中添加
[]
,否则它不会识别多个值-这告诉PHP不要替换相同的键名值,而是将它们用作数组

<form name="test">
  <select name="example[]"></select>
  <select name="example[]"></select>
  <select name="example[]"></select>
</form>

然后,您可以这样读取这些值

<?php

$exampleArray = $_GET['example'];
// you can now loop over $exampleArray or whatever.

如果您需要三个独立的
必须包含相同的
值,那么您需要有不同的
名称
属性,至少如果您希望保持简单的话。 但是,如果您可以使用一些JS/jQuery,那么您可以为这些
设置三个不同的
id
,并使用AJAX“模拟”不同的名称。大概是这样的:

var v1 = $("#select1").val();
var v2 = $("#select2").val();
var v3 = $("#select3").val();

$.ajax({
  type: "POST",
  url: "someurl.php",
  data: "select1="+v1+"&select2="+v2+"&select3="+v3,
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});

如果您需要三个独立的
必须包含相同的
值,那么您需要具有不同的
名称
属性,至少如果您希望保持简单的话。 但是,如果您可以使用一些JS/jQuery,那么您可以为这些
设置三个不同的
id
,并使用AJAX“模拟”不同的名称。大概是这样的:

var v1 = $("#select1").val();
var v2 = $("#select2").val();
var v3 = $("#select3").val();

$.ajax({
  type: "POST",
  url: "someurl.php",
  data: "select1="+v1+"&select2="+v2+"&select3="+v3,
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});

功能投票(){
var sIdx=document.getElementById('vote')。selectedIndex;
警报(document.getElementById('vote').options[sIdx].value);
}

功能投票(){
var sIdx=document.getElementById('vote')。selectedIndex;
警报(document.getElementById('vote').options[sIdx].value);
}