foreach() 参数必须是 array|object 类型,在 菲亚特listesi

问题描述 投票:0回答:2
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Fiyat listesi</title>
</head>
<body>
<form method="post" action="dosyam.php">
    Fiyat listesi: <input name="seçici1[]" type="checkbox" value="Fiyat">
    Gram <input name="seçici1[]" type="checkbox" value="gram">
<br>
   Elma: <input  type="checkbox" name="Meyve[]" value="Elma" ><br>
   Kiraz: <input  type="checkbox" name="Meyve[]" value="Kiraz">
    <input type="submit" name="gonder " value="Anketi Gönder">



</form>
</body>
</html>

<?php



$sec = $_POST["seçici1"];
foreach ($sec as $secici){
    echo $secici;
}


$Meyve = $_POST["Meyve"];

foreach ($Meyve as $deger) {
    echo $deger."<br>";

}

$gram = array("Elma" => "1.000", "Kiraz" => "1.000", "Elma Fiyat" =>"50TL", "Kiraz Fiyat"=>"60TL" );


if ($deger =="Elma"){
    echo $gram["Elma"];

}

if ($deger == "Kiraz"){
    echo $gram["Kiraz"];
}

else{
    echo "Yanlış değer";
}





?>

输出: 警告:第 5 行 C:\xampp\htdocs\phpvideo\Projem\dosyam.php 中未定义的数组键“seçici1”

警告:foreach() 参数必须是 array|object 类型,第 6 行 C:\xampp\htdocs\phpvideo\Projem\dosyam.php 中给出的 null

警告:第 11 行 C:\xampp\htdocs\phpvideo\Projem\dosyam.php 中未定义数组键“Meyve”

警告:foreach() 参数必须是 array|object 类型,第 13 行 C:\xampp\htdocs\phpvideo\Projem\dosyam.php 中给出的 null

警告:第 21 行 C:\xampp\htdocs\phpvideo\Projem\dosyam.php 中未定义变量 $deger

警告:第 26 行 C:\xampp\htdocs\phpvideo\Projem\dosyam.php 中未定义变量 $deger Yanlış değer

请帮助我

php foreach
2个回答
0
投票

在页面初始加载时,还没有设置$_POST,所以你需要注意 这是带有

isset()
条件的逻辑,所以我们可以更新它并添加条件,看起来像这样

<?php



if(isset($_POST["seçici1"])){

    $sec = $_POST["seçici1"];
    foreach ($sec as $secici){
        echo $secici;
    }
}

if (isset($_POST["Meyve"])){
    
    $gram  = array("Elma" => "1.000", "Kiraz" => "1.000", "Elma Fiyat" =>"50TL", "Kiraz Fiyat"=>"60TL" );
    $Meyve = $_POST["Meyve"];

    foreach ($Meyve as $deger) {
        echo $deger."<br>";
        
        if ($deger =="Elma"){
            echo $gram["Elma"];

        }

        if ($deger == "Kiraz"){
            echo $gram["Kiraz"];
        }

        else{
            echo "Yanlış değer";
        }
    }
}

?>


0
投票

看起来就像是一个页面调用本身

为了避免页面登陆时出现警告错误,您可以使用功能

isset()
来避免这些问题

示例

if(isset($_POST["gonder"])){ // check if submit button is set or not
    // other instruction
}
© www.soinside.com 2019 - 2024. All rights reserved.