Php &引用;无效参数";关于posted数组foreach循环

Php &引用;无效参数";关于posted数组foreach循环,php,mysql,arrays,foreach,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 $car

我有一个简单的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>
而且这个效果非常好

然后我有一个问题,你确定要删除“是”和“否”按钮吗

我尝试过的“是”按钮与普通的“提交”按钮一样:

    <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']."")

?>

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


它可能很简单,但似乎无法理解。

首先更改您的表单发送两个值的方式和发送位置
$\u POST['carID']
此表单上的值提交尝试以隐藏方式发送
carID

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

缺少名为
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>

<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>


print_r($_POST['carID'])并显示结果我认为您需要更改@rakesharma我将print_r($_POST['carID'])放在deletecar.php中,它只是像echo一样显示了“array”。我只是不明白在一个文件中进行foreach操作怎么会很好,而在另一个文件中却没有。在
WHERE carIndex=“.carID.”中缺少引号“;
do
WHERE carIndex=”“$carID.”“;
@Fred ii-Ah yes ty,修复了这个问题,仍然得到foreach无效参数错误。可能没有选中任何复选框,因此对于同一字段不会得到任何结果,因此对于同一字段不会传递任何数组。我得到了“post值有问题”结果,所以post值不是数组,但当我回显它时,它会显示“array”?:s必须按照@Ravinder和我的建议更改形式,直到得到“post值有问题”结果。您需要使用调试工具或echo在“是提交”页面上检查数组的隐藏值,如果数组被打断,则需要逐行调试问题是我试图以我认为的形式发布现有数组,因此它将始终作为“数组”在另一端接收。如何将一个php数组传递到另一个文件,并重定向那里的用户。我用js做过,但处理的是jquery值,而不是php。啊,是的,我看到了问题,并对其进行了修改。谢谢,但我仍然收到foreach错误。