将多个变量从jquery传递到php

将多个变量从jquery传递到php,php,jquery,ajax,html,css,Php,Jquery,Ajax,Html,Css,希望到目前为止,每个人都喜欢自己的一天:D.我对JQUERY和AJAX比较陌生,我一直在努力找到自己的方法,不过我已经做到了。然而,我有一个小问题。我有使用PHP从MYSQL数据库生成的HTML内容,因此复选框的值不同;这是一个简单的内部消息程序,我正在为我的网站工作。我有一个复选框,我可以点击它来选择页面上的所有其他复选框。然而,我希望实现的是,当用户选择特定数量的复选框或甚至几个复选框,然后按下图片,然后调用我的php文件,该文件将负责删除用户选中的消息。前一个问题帮助很大:但我有许多复选框

希望到目前为止,每个人都喜欢自己的一天:D.我对JQUERY和AJAX比较陌生,我一直在努力找到自己的方法,不过我已经做到了。然而,我有一个小问题。我有使用PHP从MYSQL数据库生成的HTML内容,因此复选框的值不同;这是一个简单的内部消息程序,我正在为我的网站工作。我有一个复选框,我可以点击它来选择页面上的所有其他复选框。然而,我希望实现的是,当用户选择特定数量的复选框或甚至几个复选框,然后按下图片,然后调用我的php文件,该文件将负责删除用户选中的消息。前一个问题帮助很大:但我有许多复选框

HTML/JS:

<body>
    Check Box: <input type="checkbox" name="check" value="1">
Check Box: <input type="checkbox" name="check" value="4">
Check Box: <input type="checkbox" name="check" value="3">
Check Box: <input type="checkbox" name="check" value="4">

<img id = "delete" src="http://icons.iconarchive.com/icons/visualpharm/must-have/256/Delete-icon.png">

<script>
$("#delete").click(function () {
   $.post('sql_delete.php', 'num=' + $(this).val(), function (response) {
      alert(response);
   });
}); 
</script>
</body>
PHP

我怀疑我可能需要在JS和PHP中使用循环,但我并不完全确定。欢迎您的建议:D

$messageid=\u$POST[num];应该是$messageid=$\u POST['num']

当用户单击时,您的代码将逐个删除复选框。如果您想让用户检查尽可能多的内容,然后单击某个按钮将其删除,则需要从复选框中删除该单击侦听器,并将其绑定到提交按钮或您提到的图像。您还需要更改进行ajax调用的方式—您必须序列化所有已检查的ID并发送该ID。此外,PHP代码需要取消序列化该数据,并对每个收到的ID进行删除查询

另外,可能最重要的是,在使用MySQL的任何网站上线之前,请先阅读相关内容。而且mysql_*函数已被弃用,如上面所述,因此您最好切换到mysqli_*或PDO。

jquery:

$('#your_form').submit(function() {
    $.post('sql_delete.php', $("#your_form").serialize(), function (response) {
        alert(response);
    });
    return false;
});
html:

上面编辑的代码已经过测试

此外,php可能不需要循环

$messageid = $_POST['check']; // sql injection already discussed.
$in = implode(", ", $messageid);
$sql_statement = "DELETE FROM chj_messages WHERE message_ID IN ($in)";
mysql_query($sql_statement);

是否要在单击复选框时删除某个项目,或者让用户选择一个或多个复选框,然后单击按钮删除所有选定项目?此外,您的代码已打开以进行SQL注入以防止出现这种情况,或者在SQL语句中使用$messageid之前正确转义它,或者尝试对SQLYes thaJeztah使用参数绑定,这正是我希望实现的:D。。。我使用的代码只是一个快速标记,原始代码可以防止sql注入。。我希望它能很好地做到这一点:DHey shomz感谢您的快速响应,我解决了这个问题。我想知道当我点击图片时,如何将复选框值的多个变量传递给php代码。谢谢:您需要序列化表单值,选中此项:然后您可以将所有ID作为单个值传递。您必须将它们包装在表单中并添加“提交”按钮。使用jQuery.serialize,您可能能够一次收集所有表单数据。哈哈,肖姆兹。打败我:@thaJeztah哈哈,是的。。。尽管我在回答中提到了所有这些:他们所说的sql注入执行了javascript代码,但是表中仍然存在值实际上,您需要返回false;发布后,它将提交没有javascript的表单。在chrome或firebug中检查您的网络标题/响应。我在chrome中检查网络标题,单击图像后,它被称为js文件、按钮和html页面,但是我没有看到对执行删除的实际php文件的调用应该没有,抱歉。我在上面编辑了这个,返回值为false;在之前的评论中提到。
<form id="your_form">
  Check Box: <input type="checkbox" name="check[]" value="1">
  Check Box: <input type="checkbox" name="check[]" value="6">
  Check Box: <input type="checkbox" name="check[]" value="8">
  Check Box: <input type="checkbox" name="check[]" value="4">
  <input type="image" src="path/to/your/image">
</form>
$messageid = $_POST['check'];
foreach($messageid as $id) {
     $sql_statement = "DELETE FROM chj_messages WHERE message_ID = $id";
      mysql_query($sql_statement);

}
$messageid = $_POST['check']; // sql injection already discussed.
$in = implode(", ", $messageid);
$sql_statement = "DELETE FROM chj_messages WHERE message_ID IN ($in)";
mysql_query($sql_statement);