0

你好朋友我正在尝试制作一个收件箱系统,我们在一个复选框的帮助下选择所有复选框,然后通过 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'");
        }
4

3 回答 3

1

好吧,您可以在这里使用两种方法。反正根据我的经验。

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

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

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

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

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

于 2012-04-13T18:49:36.597 回答
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)");
}
于 2012-04-13T19:03:38.773 回答
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 帮助我走出困境

于 2012-04-13T19:18:48.050 回答