2016-12-08 7 views
1

私はこのコードを、ユーザーが詳細を更新できるフォームに載せています。それは動作しますが、ユーザーが一度正常に更新された場合は、他の誰かがエラーを表示してエラーメッセージが表示されますが、成功メッセージは消えず、混乱します。PHP資産エラーエコーelse

if else内でforeachループを使用する方法はありますか?

<?php 
        //check for any errors 
        if(isset($error)){ 
         foreach($error as $error){ 
          echo '<p class="bg-danger">'.$error.'</p>'; 
         } 
        } 

        if(isset($_GET['action']) && $_GET['action'] == 'updated'){ 
         echo "<p class='bg-success'>Your details have been updated.</p>"; 
        } 
        ?> 
+0

配列とその結果の要素に同じvar名を使用すると読み込みが紛らわしくなり、エラー(huh)になります。配列に名前を付けるときには、タイプヒントという概念を使用しない限り、複数形としてアクセスします。例えばforeach($ errors as $ error)またはforeach($ Errorrors as $ error)ですが、そのようなショップもあります。 – Cups

答えて

0

あなたの$ _GET ['action']はまだ更新されているようです。だから、二つのオプション: 1.ラップ$ _GET [「行動」]他に誤りがあるかどうそれは発生しませんので、

//check for any errors 
if(isset($error)){ 
    foreach($error as $error){ 
     echo '<p class="bg-danger">'.$error.'</p>'; 
    } 
} ELSE { // add this! 
    if(isset($_GET['action']) && $_GET['action'] == 'updated'){ 
     echo "<p class='bg-success'>Your details have been updated.</p>"; 
    } 
} 

OR $ _GET [「行動」]がないことを確認してください

+0

ありがとう、それは完璧に機能しました!私は試してみましたが、構文が間違っているはずです – user7269149