使用select all获取多个复选框值并将值更新到数据库中

时间:2012-04-13 18:43:02

标签: php jquery mysql

你好朋友我试图制作一个收件箱系统,我们在一个复选框的帮助下选中所有复选框,然后通过ajax将值传递给所有复选框并更新数据库。但问题是他们重视并逐个选择然​​后形成一个数组

例如

时间2 第二次2,3 第三次2,3,4

并在sql查询,我试图获取数组列表并打破它们,以便我可以更新数据库中的值也没有发生,任何人都可以帮忙吗?这是我编码的。

获取复选框

的值
           $(function(){
   $('.massmsgdelbutton').click(function(){
    var val = [];
  $('.sltchk:checked').each(function(i){
   val[i] = $(this).val();
  var dataString = 'massmsgdel='+ val;
  if(confirm("Sure you want move all these messages to Trash? There is NO undo!"))
  {

$.ajax({
 type: "POST",
 url: "modules/messages/sql_ex.php",
data: dataString,
 cache: false,

 success: function(html){
 alert(html);
  }
 });

  }

});
 });
});

我的sql代码使用expode来爆炸数组

       if(isset($_REQUEST['massmsgdel']))
         {
     $id=$_REQUEST['massmsgdel'];
        $myArray[] = explode(',', $id);
     echo $id;
        $sql=mysql_query("update message set trash='1' where message_id='$myArray'");
        }

3 个答案:

答案 0 :(得分:1)

嗯,你可以在这里使用两种方法。无论如何,根据我的经验。

你可以遍历你拥有的数组(foreach循环)并每次都执行UPDATE,如下所示:

$sql=mysql_query("update message set trash='1' where message_id='$messageID'");

或者您可以尝试使用IN SQL运算符(您可以在here上找到更多信息),如下所示:

$sql=mysql_query("update message set trash='1' where message_id IN ('$messageID1', '$messageID2', '$messageID3', '$messageID4')");

IN运算符会将message_id与括号中的任何参数进行匹配。

答案 1 :(得分:0)

有用吗?

if(isset($_REQUEST['massmsgdel']))
{
     $id=$_REQUEST['massmsgdel'];
        $myString = implode(',', $id);
     echo $id;
        $sql=mysql_query("update message set trash='1' where message_id IN ($myString)");
}

答案 2 :(得分:0)

伙计们,我找到了解决方案。

在jquery中我必须使用

  var dataString = 'massmsgdel='+ val[i];

而不是

  var dataString = 'massmsgdel='+ val;

在sql中我必须使用

      $sql=mysql_query("update message set trash='1' where message_id IN ('$myArray')");

感谢@Frank Allenby帮我解决问题