php - 发布数组 foreach 循环上的 "Invalid argument"

标签 php mysql arrays foreach

哟,所以我有这个简单的 foreach 循环:

foreach ($_POST['carID'] as $carID) 
{  
    $query = "DELETE FROM cars WHERE carIndex = ".$carID."";
    echo $query;
} 

但我收到错误:警告:第 8 行 K:\XAMPP\htdocs\Cars\deletecar.php 中为 foreach() 提供的参数无效

第 8 行是:

foreach ($_POST['carID'] as $carID)

数组“($_POST['carID']”是根据另一个页面上的多个复选框创建的,并仅使用提交按钮表单进行发布。

形式为:

<form name="input" action="delete.php" method="POST">
    <input type="submit" value="Submit">
    <while loop>
    <input type="checkbox" name="carID[]" value="'.$row['carIndex'].'">
    <end loop>
</form>

实际的复选框位于基于 mysql 查询的循环内。

此处创建的数组将发送到一个页面,该页面使用 foreach 循环创建用于查询的 WHERE 语句来显示选定的数据库记录。完全相同的 foreach 现在不起作用。

我愿意:

$where = " WHERE ";    
foreach ($_POST['carID'] as $carID) 
{  
    $where = $where." carIndex = ".$carID." OR";
}
$where = substr($where, 0, -3); 

这工作得很好。

然后我有一个“您确定要删除是”和“否”按钮吗?

我尝试过将"is"按钮作为普通的提交按钮,如下所示:

    <form name="input" action="deletecar.php" method="POST">
        <input type="submit" value="Yes" value="'.$_POST['carID'].'">
    </form>

但是在提交时,在deletecar.php页面上我收到错误:警告:第8行的K:\XAMPP\htdocs\Cars\deletecar.php中为foreach()提供的参数无效

deletecar.php的完整代码是:

<?php

$db = mysqli_connect('localhost', 'root', '', 'cdb')
      or die('Error connecting');

echo $_POST['carID'];

foreach ($_POST['carID'] as $carID) 
{  
    $query = "DELETE FROM cars WHERE carIndex = ".$carID."";
    echo $query;
} 

//header ("Location: profile.php?username=".$_SESSION['username']."")

?>

发布数据的顶部回显回显“数组”,据我所知,它正在获取数据,因为它知道它是一个数组。然后是禁用的重定向。

这可能很简单,但似乎无法弄清楚。

最佳答案

名称为 carID 的表单元素丢失。将其包含在表单中。

更改:

<form name="input" action="deletecar.php" method="POST">
    <input type="submit" value="Yes" value="'.$_POST['carID'].'">
</form>

:

<form name="input" action="deletecar.php" method="POST">
    <input type="hidden" name="carID" value="'.$_POST['carID'].'">
    <input type="submit" value="Yes">
</form>

关于php - 发布数组 foreach 循环上的 "Invalid argument",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23060711/

相关文章:

php - 是否有可能在 PHP 中使用 file_get_contents 破坏 CSRF token 验证

php - mysql_real_escape_string() 问题

php - 关联数据库中不同表的两个元素

mysql - 为什么我不能通过 Express 从 mysql 查询中发送响应?

php - MySQL 通过代理 php 连接

javascript - Jquery 排序并给出正确或错误的消息

c++ - 声明类似于 C 风格的数组 (C++)

php - 在多个文件夹php上上传图像

javascript - 如何对所有行的每列数组进行多重排序? (JavaScript)

php - 在 PHP 中成功执行查询后 mysql_query 返回 false