0

继我昨天的问题之后,我现在让下面的代码有些成功。它允许我更改第一个表单项并将其提交到后台的“process.php”并将该字段变为绿色。但是,触发器仅适用于第一个表单项,在本例中为“cstate”。更改“位置”时不会触发。如果您更改 clocation 然后 cstate 那么两个表单都可以正常提交,因此只是 .change 函数在 clocation 更改时不会触发。我在 JS(总 JS 菜鸟)方面还不够好,不知道为什么它不起作用,所以我很感激你能给我的任何帮助。

谢谢!

 $sql = "select * from `$table1`";
 $result = mysql_query ($sql) or die(mysql_error());
 while ($row = mysql_fetch_array($result)) 
 { 
   $carid = $row["car_id"]; 
   $carnum = $row["carnum"]; 
   $carlocation = $row["carlocation"];
   $carstate = $row["carstate"];


  $formname = "#form".$carid;

  print '<script type="text/javascript">';
  print "        var cnum;";
  print "        cnum = '$formname',";
  print "        

  $('form').change(function() 
  {
  console.log(cnum);
  $.ajax({ 
  type: 'post',
  url: 'process.php',
  data: $(this).serialize(),
  success: function() {
  }
   });
  return false;
   }); 
  </script>";

   echo "<table>";
   echo "<tr id='$carid'>";
   echo "<td>$carnum</td>";
   echo "<td><form action='' method='post' id='form$carid'>";
   echo "<select id='popup' name='cstate'>";
   echo "<option value='In-Service-Bay'>In Service Bay</option>";
   echo "<option value='Awaiting-Service'>Awaiting Service</option>";
   echo "<option value='Service-Complete'>Service Complete</option>";
   echo "</select></td>";
   echo "<select id='popup' name='clocation'>";
   echo "<option value='Carpark-1'>Carpark-1</option>";
   echo "<option value='Carpark-2'>Carpark-2</option>";
   echo "<option value='Carpark-3'>Carpark-3</option>";
   echo "</select></td>";
   echo "</form></tr>";
  }
  echo "</table>";
4

2 回答 2

0

在里面使用.on()和包装代码document.ready.

$(document).ready(function(){
  $('form').on('submit',function() 
  {
     //code here
  });
});

也将此代码放在while循环之外。表单也没有更改事件尝试使用.submit()

于 2013-03-19T09:29:56.217 回答
0

通过为每个输入选择使用单独的表单来解决它。现在工作得很好。

感谢所有试图提供帮助的人。

亚当

于 2013-03-19T10:59:25.143 回答