0

我想在while循环中使用onchange从选择框中获取值。但我只得到第一个值。如何从所有人中获取价值?

我只是通过在 php 中使用 while 循环来做到这一点。

谁能告诉解决方案?

提前致谢。

这是我的代码:这是我的代码...

<script type="text/javascript">
function showUser1()
{

var str = document.getElementById("process").value;
var str1 = document.getElementById("snp").value;

alert(str);
alert(str1);

if (str=="")
  {
  document.getElementById("txtHint1").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint1").innerHTML=xmlhttp.responseText;
    }
  }
//xmlhttp.open("GET","process.php?q="+str,true);
xmlhttp.open("GET","process.php?q=" + str + "&q1=" + str1, true);
xmlhttp.send();

}
</script>

<table cellpadding="1" cellspacing="1" border="0">
<tr>
<td id="txtHint">
<table cellpadding="1" cellspacing="1" border="0">
<tr>
<th style="padding-left:500px;">Serial Number</th>
<th>&nbsp;Status</th></tr>

<tr>

<td>
<?php $i = 1;
while ($i <= 10) {
echo $i++;  /* the printed value would be $i before the increment (post-increment) */
?>
<form>
<select name="process" id="process" onchange="showUser1(this.value)">
<option value="" selected="selected">Select</option>
<option value="0">Not Yet Start</option>
<option value="1">On Process...</option>
<option value="2">On Stock Yard</option>
<option value="3">Despatched</option>
</select>
<input type="text" name="snp" id="snp" value="<?php //echo $fetch['serial_number']; ?>" />
</form>
<?php } ?>
</td>
<td id="txtHint1"></td>
</tr>

</table>
</td>
</tr>
</table>
4

2 回答 2

0

函数 showUser1(i, processValue) {

var str = 过程值;var str1 = document.getElementById("snp" + i).value;

警报(str);警报(str1);

if (str == "") { document.getElementById("txtHint1").innerHTML = ""; 返回; } if (window.XMLHttpRequest) {// IE7+、Firefox、Chrome、Opera、Safari 的代码 xmlhttp = new XMLHttpRequest(); } else {// IE6、IE5 的代码 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("txtHint1").innerHTML = xmlhttp.responseText; } } // xmlhttp.open("GET","process.php?q="+str,true); xmlhttp.open("GET", "process.php?q=" + str + "&q1=" + str1, true); xmlhttp.send();

}

序列号状态

          <tr>

              <td>
              <?php $i = 1;
              while ($i <= 10) {
                  ?>
                  <form>
                      <select name="process<?php echo $i;?>"
                          id="process<?php echo $i;?>"
                          onchange="showUser1(<?php echo $i;?>,this.value)">
                          <option value="" selected="selected">Select</option>
                          <option value="0">Not Yet Start</option>
                          <option value="1">On Process...</option>
                          <option value="2">On Stock Yard</option>
                          <option value="3">Despatched</option>
                      </select> <input type="text" name="snp<?php echo $i;?>"
                          id="snp<?php echo $i;?>"
                          value="<?php //echo $fetch['serial_number']; ?>" />
                  </form>



                   <?php  $i++;  /* the printed value would be $i before the increment (post-increment) */  }  ?> </td>
              <td id="txtHint1"></td>
          </tr>

      </table>        </td>   </tr> </table>
于 2012-11-19T09:30:13.063 回答
0

首先,我注意到您的代码中几乎没有错误。

  1. 不要在 while 循环中包含表单。

  2. 选择框名称和 id 应该是动态的 [like process1, process2 .. ]

  3. 在函数 showUser1() 中,您必须传递两个参数。

onchange="javascript : return showUser1([循环计数器], this.value);"

  1. Javascript 函数如下所示

功能 showUser1(cnt,processValue){

 var str = processValue;

 var str1 = document.getElementById("snp"+ cnt).value;

 ........   }
  1. 输入类型文本框值应该是动态的,如选择框。
于 2012-11-19T08:10:04.760 回答