Php 在foreach循环中显示一次错误消息

Php 在foreach循环中显示一次错误消息,php,html,foreach,Php,Html,Foreach,我有一个简单的输入字段,使用spreep来更改数据库中的值。错误显示在表单的底部,其中包含错误内容。现在我不想在正确的输入字段后面显示错误。问题在于,输入字段是使用foreach循环动态构建的。因此,当我不想在前端显示错误时,它会在每个同名输入字段之后显示错误。在本例中,我有3个字段带有“afsluitkosten”,如果我只更改一个字段时出错,我不希望它仅显示在匹配的输入字段之后 if (isset($_POST['opslaan'])) { $naam = $_POST['naam

我有一个简单的输入字段,使用spreep来更改数据库中的值。错误显示在表单的底部,其中包含错误内容。现在我不想在正确的输入字段后面显示错误。问题在于,输入字段是使用foreach循环动态构建的。因此,当我不想在前端显示错误时,它会在每个同名输入字段之后显示错误。在本例中,我有3个字段带有“afsluitkosten”,如果我只更改一个字段时出错,我不希望它仅显示在匹配的输入字段之后

if (isset($_POST['opslaan'])) {

    $naam = $_POST['naam'];
    $afsluitkosten = $_POST['afsluitkosten'];
    $percentage = $_POST['percentage'];
    $btw = $_POST['btw'];
    $id = $_POST['opslaan'];
    if ($afsluitkosten < 15)
     {
        if ($percentage < 1)
         {
            if ($btw < 50)
             {
                $annuleringOpslaan = AnnuleringsverzekeringQuery::create()->findOneById($id);
                $annuleringOpslaan->setNaam($naam);
                $annuleringOpslaan->setAfsluitkosten($afsluitkosten);
                $annuleringOpslaan->setPercentage($percentage);
                $annuleringOpslaan->setBtw($btw);
                $annuleringOpslaan->save();

                $opslaanSucces = "Annuleringsverzekering $naam is opgeslagen";
            } else {
                $fout1 = "De btw van annuleringsverzekering $naam moet onder de 50 zitten";
            }
        } else {
            $fout2 = "De percentage van annuleringsverzekering $naam moet onder de 1 zitten";
        }
    } else {
        $fout3 = "De afsluitkosten van annuleringsverzekering $naam moet onder de 15 zitten";
    }
};

// Gegevens ophalen en laten zien in front end
$annuleringen = AnnuleringsverzekeringQuery::create()
    ->find();

$annuleringarray = array();


foreach ($annuleringen as $annulering) {
    $array["id"] = $annulering->getId();
    $array["naam"] = $annulering->getNaam();
    $array["afsluitkosten"] = $annulering->getAfsluitkosten();
    $array["percentage"] = $annulering->getPercentage();
    $array["btw"] = $annulering->getBtw();
    $array["fout1"] = $fout1;
    $array["fout2"] = $fout2;
    $array["fout3"] = $fout3;

    array_push($annuleringarray, $array);
};
if(isset($\u POST['opslan'])){
$naam=$_POST['naam'];
$afsluitkosten=$_POST['afsluitkosten'];
$percentage=$_POST['percentage'];
$btw=$_POST['btw'];
$id=$_POST['opslan'];
如果($afsluitkosten<15)
{
如果(百分比<1)
{
如果($btw<50)
{
$annougeringopslaan=annougeringsverzekeringquery::create()->findOneById($id);
$CANGERIGPSLAAN->setNaam($naam);
$annueringopslaan->setAfsluitkosten($afsluitkosten);
$CANGERIGPSLAAN->setPercentage($percentage);
$CANGERIGPSLAAN->setBtw($btw);
$CANGERIGPSLAAN->save();
$opslaanSucces=“annueringsverzekering$naam是opgeslagen”;
}否则{
$fout1=“顺便说一句,凡纳格瑞维泽克林$naam moet onder De 50 ZITEN”;
}
}否则{
$fout2=“从1到10年的百分比变化$naam moet onder”;
}
}否则{
$fout3=“第15条规定的所有费用”;
}
};
//前端的Gegevens Opalen en laten zien
$annougeringen=annougeringsverzekeringquery::create()
->查找();
$annueringarray=array();
foreach($annuering作为$annuering){
$array[“id”]=$CANGERING->getId();
$array[“naam”]=$CANGERING->getNaam();
$array[“afsluitkosten”]=$ringering->getAfsluitkosten();
$array[“percentage”]=$Canneling->getPercentage();
$array[“btw”]=$CANGERING->getBtw();
$array[“fout1”]=$fout1;
$array[“fout2”]=$fout2;
$array[“fout3”]=$fout3;
阵列推送($annueringarray,$array);
};
这是html

    <h2>{$doctitle}</h2>

    {foreach $annuleringarray as $array}
    <form action="annuleringsverzekering_bewerken.php" method="post">

        <label for="naam">Naam</label><input name="naam" value="{$array.naam}"><br>
        <label for="afsluitkosten">Afsluitkosten</label><input name="afsluitkosten" value="{$array.afsluitkosten}"><span class="error">{$array.fout3}</span><br>
        <label for="percentage">Percentage</label><input name="percentage" value="{$array.percentage}"><span class="error">{$array.fout2}</span><br>
        <label for="btw">Btw</label><input name="btw" value="{$array.btw}"><span class="error">{$array.fout1}</span> <br> 
        <button name="opslaan" value={$array.id}>Opslaan</button> <br> <br>

    </form>
    {/foreach}

    <h3 style="color:green;">{$opslaanSucces}</h3>

</body> ```
{$doctitle}
{foreach$annueringarray作为$array}
纳姆
Afsluitkosten{$array.fout3}
百分比{$array.fout2}
顺便说一句{$array.fout1}
Opslan

{/foreach} {$opslaanSucces} ```
以及以下错误,如将错误传递到阵列:

$errors[] = "Annuleringsverzekering $naam is opgeslagen";
并显示:

if ($errors){
 foreach($errors as $error){
 //do what ever you want here `echo $error;` or not echo $error;
 }
}
如果要在下面显示错误以输入有错误,请检查此示例:

if ($errors){
 foreach($errors as $error){
 //do what ever you want here `echo $error;` or not echo $error;
 }
}