使用复选框

时间:2016-03-26 00:54:24

标签: php jquery mysql

我正在制作购物清单,我已经有了删除单个项目的功能,截至目前,我在使用复选框删除多个项目时遇到问题。我的项目表由itemName,itemId和listId

组成

我正在使用ajax jquery

删除多个JS功能

function deleteMultiple(){
            $("#deleteMultiple").click(function(){
                var itemsDelete = new Array();
                $("input:checkbox:checked").each(function() {
                    itemsDelete.push( $(this).val() );
                });

                $.ajax({
                    type: "POST",
                    url: "deleteMultiple.php",
                    data: { itemsDelete : itemsDelete },
                    cache: false,
                    success: function(){
                    }
                });
                return false;

            });
        }
        }

PHP函数吐出特定列表中的所有项目

$sql = ("SELECT listId FROM list WHERE listName = '$listName' LIMIT 1");
$result = mysqli_query($conn,$sql) or die(mysql_error());

while($row = mysqli_fetch_assoc($result)) {
    $_SESSION['listIdIn'] = $row['listId'];
}

$sql = "(SELECT itemName FROM item WHERE listId =". $_SESSION['listIdIn'] .")";
$result = mysqli_query($conn,$sql);

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "<li><input name = 'checkbox[]' type='checkbox' value ='" . $row["itemName"]. "'>" . $row["itemName"]. "</input><input type='button' class='deleteItem' Value='Delete'/></li>";
    }
} else {
    return null;
} 

和PHP函数删除多个项目

$sql="SELECT * FROM item";
$result=mysqli_query($conn,$sql);

$count=mysqli_num_rows($result);

for($i=0;$i<$count;$i++){
    $itemsDelete = $_REQUEST['itemsDelete'];
    $sql = "DELETE FROM 'item' WHERE itemName = '$itemsDelete'";
    $result = mysqli_query($conn,$sql);
}

谢谢

更新:所以我改变了我的deleteMultiple.php,这里是代码现在的样子

$itemsDelete = $_REQUEST['itemsDelete'];
var_dump ($itemsDelete);

for ($i = 0; $i < count($itemsDelete); $i++){
    $itemsDeleteName = $itemsDelete[$i];
    $sql = "DELETE FROM 'item' WHERE 'itemName' IN (//I read from some article I have to use implode, I tried but it's not working) AND 'listId' = ".$_SESSION['listIdIn'];
    mysqli_query($conn,$sql);
}

var_dump给出了这个结果

array(3) { [0]=> string(5) "item3" [1]=> string(5) "item4" [2]=> string(9) "iteeeemmm" } 

到目前为止,通过单击删除按钮,我可以将值传递给multipleDelete.php,我可以将值传递给php数组,现在的问题是,我无法使用php数组中的值并删除MySQL数据库< / p>

1 个答案:

答案 0 :(得分:0)

我将回答问题的一部分,这很清楚。 请注意您可能还有其他问题,这肯定是其中之一。但是,为了帮助您,必须发布更多信息。缩小问题范围,使用var_dump,浏览器控制台等

在你的jQuery中,你没有正确设置/推送正确的变量。更改此部分:

 // Here you declare the variable itemsDelete.  This is fine.
 var itemsDelete = new Array();       
 // Note it's preferable to declare the variable like so:    
 // var itemsDelete = [];

 $("input:checked").each(function() {
     // Here you are pushing onto an array called data.  You didn't declare that, so replace it...
     // data['itemsDelete[]'].push($(this).val());
     itemsDelete.push( $(this).val() );
  });

您的AJAX似乎没问题。

您的PHP中存在一些拼写错误/问题(在某些地方您使用mysqli_,而在其他地方使用mysql_

祝你好运。

(注意:为什么在声明数组时使用数组文字表示法,请参阅this SO answer