Javascript 在PHP中更改时提交多个JS表单

Javascript 在PHP中更改时提交多个JS表单,javascript,php,Javascript,Php,我有一段时间在PHP中构建一个表。在我的while中,我有一个下拉菜单,我想在更改时执行代码。。。。更改时提交的表单不起作用。。。 这是我的代码: <? while ($data2 = mysql_fetch_array( $data)) { ?> <form name="FormSize" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > <td> <s

我有一段时间在PHP中构建一个表。在我的while中,我有一个下拉菜单,我想在更改时执行代码。。。。更改时提交的表单不起作用。。。 这是我的代码:

<?
while ($data2 = mysql_fetch_array( $data)) 
{  ?>

<form name="FormSize" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > 
  <td>
  <select name="size[]"  class="form-field3" OnChange="document.FormSize.submit();" >

      <? foreach ($sizearray as $value) {  ?>
      <option value="$value" <? if($data2['size'] == $value) { echo "selected";} ?> ><?     echo $value; ?></option>
      <? } ?>

  </select>
  <input type="hidden" name="product_id[]" value="<? echo $data2['product_id']; ?>">
 </td>
</form>

<? } ?>


您有多个表单具有相同的
name=“FormSize”
。因此
document.FormSize
将是一个类似数组的对象,您需要访问相应的对象。您可以使用
this.form
引用包含
来执行此操作

您还需要修复元素嵌套——
必须位于
内部,而不是相反

<?
while ($data2 = mysql_fetch_array( $data)) 
{  ?>

<td>
  <form name="FormSize" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > 
  <select name="size[]"  class="form-field3" OnChange="this.form.submit();" >

      <? foreach ($sizearray as $value) {  ?>
      <option value="$value" <? if($data2['size'] == $value) { echo "selected";} ?> ><?     echo $value; ?></option>
      <? } ?>

  </select>
  <input type="hidden" name="product_id[]" value="<? echo $data2['product_id']; ?>">
  </form>
/td>
<? } ?>


可能是因为html无效,您不能将
表单
标记作为
tr
的直接子项

除此之外,将所有表单命名为同一个表单将使按其名称提交特定表单变得非常困难


当您使用数组作为
输入
名称时,我假设您的意思是所有这些名称都是相同的形式,因此您应该让表单包装表格,并将其从
循环中取出。

我的表单名称是唯一的。。。我以前把表单标签放在tr里面,它起作用了。。。我不确定这就是问题所在,您正在
while
循环中使用相同的nam生成多个表单。
<?
while ($data2 = mysql_fetch_array( $data)) 
{  ?>

<td>
  <form name="FormSize" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > 
  <select name="size[]"  class="form-field3" OnChange="this.form.submit();" >

      <? foreach ($sizearray as $value) {  ?>
      <option value="$value" <? if($data2['size'] == $value) { echo "selected";} ?> ><?     echo $value; ?></option>
      <? } ?>

  </select>
  <input type="hidden" name="product_id[]" value="<? echo $data2['product_id']; ?>">
  </form>
/td>
<? } ?>