你好朋友我试图制作一个收件箱系统,我们在一个复选框的帮助下选中所有复选框,然后通过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'");
}
答案 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帮我解决问题