如何从ajax调用更新和发布复选框的值

时间:2011-01-27 07:28:43

标签: php javascript ajax

我从mysql表中检索数据到html页面,即

$query="select * from student";
$result=mysql_query($query)or die(mysql_error());
while($rs=mysql_fetch_array($result))
{
?>
<tr>
      <td align="center"><?php echo $rs['st_id']; ?></td>
<td align="center"><?php echo $rs['name']"; ?></td>
<td align="center"><input type="checkbox" name="checked[]" <?php if($rs['checked']==1){echo "checked"; } ?> /></td>
<td align="center"><a href="delete_student.php?id="><img src="images/delete_icon.png" alt="Delete" /></a></td>
<td align="center"><a href="update_student.php?id="><img src="images/update.png" alt="Update" /></a></td>

这是给我输出的 enter image description here

假设从mysql表中检查并检索了id 1的复选框。
现在我要做的是当我检查剩余的两个复选框到这个表中并且一个函数被调用到ajax,它转到php页面并根据给定的id更新checked字段的值(即2和在这种情况下为3)。没有刷新整个页面也没有更新整个记录只是复选框的值。
我是ajax的新手 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

是的,探索jqGrid并不是浪费时间。但是,因为您只想更改复选框值更新。这是你可以做的......

<input type="checkbox" name="check1"  />

和..

$().ready(function(){
  var st_id = <?php echo $rs['st_id']; ?>;
  //Or you could use a hidden field in the form

  $(':checkbox').click(function(){
    var chkName = $(this).attr('name');
    var checkVal = $(':checkbox[name='+chkName+']').attr('checked');//true or false
    $.ajax({
      url: 'MyApp/update.php?checboxName=' + checkVal,//Do update on server-side
      success: function(data) {
        alert('Updated successful.');
      }
    });
  });
});

此外,您可以对所有表单元素执行$('formID').serialize() wihch返回name = value对,然后可以将这些表单元素附加到对php脚本的调用中。