0

$error に保存されているすべてのエラーを順不同のリスト形式で表示したいと考えています。以下は、エラーを表示するコードです。

<?php
     if (!empty($error)) {
         echo '<p class="error"><strong>Your message was NOT sent<br/> The following error(s) occurred:</strong><br/>'. '<li>' . $error . '</li>' . '</p>';
     } elseif (!empty($success)) {
         echo $success;
       }
?>

問題は、上記のコードがリストの最初のエラーのみを表示し、残りのエラーはリスト形式なしで別の行に表示されることです。すべてのエラーは次の形式で保存されます。

$error .= "You didn't type in your name. <br />";

br タグを削除しようとしましたが、うまくいきませんでした。

どんな助けでも大歓迎です。前もって感謝します :)

4

3 に答える 3

0

<li>タグを使用する場合は、代わりに各エラーに 使用する必要が<br/>あります。PHPの出力は次のようになります。

<ul>
    <li>Error1</li>
    <li>Error2</li>
    <li>Error3</li>
</ul>

したがって、このようなPHPコードがあります。

$error .= "<li>You didn't type in your name. </li>";
$error .= "<li>Error2. </li>";
$error .= "<li>Error3 </li>";


echo '<p class="error"><strong>Your message was NOT sent<br/> The following error(s) occurred:</strong><br/>'. '<ul>' . $error . '</ul>' . '</p>';
于 2013-02-02T06:34:36.927 に答える
0

が配列であると仮定$errorします(そう思われます)。

if (!empty($error)) {
    foreach ($error as $e) {
        printf("<li>%s</li>\n", $e);
    }
}

// or just
print "<li>". join("</li>\n<li>", $error). "</li>";

// extra: collecting errors
if (trim($_POST["first_name"]) == "") {
    $error[] = "You didn't type in your first name.";
}
if (trim($_POST["last_name"]) == "") {
    $error[] = "You didn't type in your last name.";
}
...
于 2013-02-02T07:05:01.860 に答える
0
<?php
    if (!empty($error)) {
        $errors = explode('<br />', $error);
        echo '
<p class="error"><strong>Your message was NOT sent<br/>The following error(s) occurred:</strong></p>
<ul>
';
        foreach($errors as $error){
             echo "<li>$error</li>\n";
        }
        echo "</ul>";
    } elseif (!empty($success)) {
        echo $success;

    }
?>
于 2013-02-02T06:44:09.500 に答える