PHPで掲示板を作成しており、コメントか名前が空であれば投稿できずにかつエラーマッセージを表示するようにしています。
私が書いたコードは
<?php if(isset($error_message)){ <ul class="erorrMessage"> foreach($error_message as $error){ <li>echo $error;</li> }</ul> } ?>
なのですが、これでは動かず、正確には
<?php if(isset($error_message)){ ?> <ul class="erorrMessage"> <?php foreach($error_message as $error){ ?> <li><?php echo $error; ?></li> <?php } ?> </ul> <?php } ?>
と書くべきようなのですが、私の書き方のどこが行けないのかがわかりません。
教科書などには、<?php ?>で囲んだところをPHPとして認識すると書かれているのですが、私は全体をPHPとして認識するようか混んでいるのになぜ行けないのでしょうか?
もしかしたら、ulやli、ひいてはpタグのような
htmlのタグは一歳<?php ?>で囲んではいけないのですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
PHP内でhtmlはそのまま書けない。
全部PHP内で書きたいならhtmlを出力する部分もPHPのコードとして書く。
php
1<?php 2if(isset($error_message)){ 3 echo '<ul class="erorrMessage">'; 4 foreach($error_message as $error){ 5 echo "<li>$error</li>"; 6 } 7 echo '</ul>'; 8}
"と'の使い分けはPHPの初歩なので分かってる前提。
(PHPを魔改造して直接htmlを書けるようにしたものもあったけど初心者は覚えなくていい)
投稿2023/01/18 05:57
退会済みユーザー
総合スコア0
0
教科書などには、<?php ?>で囲んだところをPHPとして認識すると書かれているのですが、私は全体をPHPとして認識するようか混んでいるのになぜ行けないのでしょうか?
もしかしたら、ulやli、ひいてはpタグのような
htmlのタグは一歳<?php ?>で囲んではいけないのですか?
はい、HTML は PHP ではないので、 <?php
~ ?>
内にPHPではない言語が含まれていることになり、エラーになります。
まずは、 php.net 基本的な構文 の各ページをよく読んで理解するといいかと思います。
投稿2023/01/18 05:45
総合スコア2037
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
(株)技術評論社 出版 「パーフェクトPHP」 16ぺージ 『PHPとは?』より引用
PHPでは、 <?php と ?> で囲まれた部分をPHPのプログラムコードとして解釈します。
PHPは、PHPというプログラム言語です。 HTMLは、HTMLというプログラム言語なので別物です。
質問の意図はわかるのですが、仕様なので、動かないものは動きません。
PHP内にHTMLを書くときの例として参考までにどうぞ。7年くらいまえに書いたPHPコードです。
php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 6 7 <title>電卓</title> 8 9</head> 10<body> 11 12<form action="dentaku-test1.php" method="post"> 13 14 15<?php 16 17if (isset($_POST ["iko-ru"])) { 18 if($_POST ["keisan"] == "÷"){ 19 $_display = $_POST ["_sahen"] / $_POST ["_2keta"]; 20 echo '<input type="text" value=' .$_display.' name="_2keta">'; 21 } 22 if($_POST ["keisan"] == "×"){ 23 $_display = $_POST ["_sahen"] * $_POST ["_2keta"]; 24 echo '<input type="text" value=' .$_display.' name="_2keta">'; 25 } 26 27 if($_POST ["keisan"] == "-"){ 28 $_display = $_POST ["_sahen"] - $_POST ["_2keta"]; 29 echo '<input type="text" value=' .$_display.' name="_2keta">'; 30 } 31 32 if($_POST ["keisan"] == "+"){ 33 $_display = $_POST ["_sahen"] + $_POST ["_2keta"]; 34 echo '<input type="text" value=' .$_display.' name="_2keta">'; 35 } 36} 37 38else{ 39 40 if (isset($_POST ["keisan"])) { 41 if (isset($_POST ["_sahen"])) { 42 echo '<div id="sahen"><input type="text" value=' .$_POST ["_sahen"].' name="_sahen"></div>'; 43 echo '<div id="keisan"><input type="text" value=' .$_POST ["keisan"].' name="keisan"></div>'; 44 if (isset($_POST ["_2keta"])){ 45 $_display = $_POST ["_2keta"] . $_POST ["main"] ; 46 echo '<input type="text" value=' .$_display.' name="_2keta">'; 47 } 48 else {echo '<input type="text" value="' .$_POST ["main"].'" name="_2keta">'; 49 } 50 } 51 else{ 52 echo '<div id="keisan"><input type="text" value=' .$_POST ["_2keta"].' name="_sahen"></div>'; 53 echo '<input type="text" value=' .$_POST ["keisan"].' name="keisan">'; 54 } 55 } 56 57 else{ 58 if (isset($_POST ["main"])) { 59 if (isset($_POST ["_2keta"])){ 60 $_display = $_POST ["_2keta"] . $_POST ["main"] ; 61 echo '<input type="text" value=' .$_display.' name="_2keta">'; 62 //echo $_2keta; echo $_POST ["main"];// 63 } 64 else { 65 echo '<input type="text" value="' .$_POST ["main"].'" name="_2keta">'; 66 } 67 } 68 69 else{ 70 echo '<input type="text" value="0" name="display">'; 71 } 72 } 73} 74 75?> 76<br> 77 <input type="submit" value="CE" name="ce"> 78 <input type="submit" value="C" name="c"> 79 <input type="submit" value="BS" name="bs"> 80 <input type="submit" value="÷" name="keisan"> <br> 81 <input type="submit" value="7" name="main"> 82 <input type="submit" value="8" name="main"> 83 <input type="submit" value="9" name="main"> 84 <input type="submit" value="×" name="keisan"> <br> 85 <input type="submit" value="4" name="main"> 86 <input type="submit" value="5" name="main"> 87 <input type="submit" value="6" name="main"> 88 <input type="submit" value="-" name="keisan"> <br> 89 <input type="submit" value="1" name="main"> 90 <input type="submit" value="2" name="main"> 91 <input type="submit" value="3" name="main"> 92 <input type="submit" value="+" name="keisan"> <br> 93 <input type="submit" value="±" name="pm"> 94 <input type="submit" value="0" name="main"> 95 <input type="submit" value="." name="main"> 96 <input type="submit" value="=" name="iko-ru"> 97</form> 98 99</body> 100</html>
投稿2023/01/18 05:44
編集2023/01/18 05:54総合スコア345
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
もう少しシンプルな考え方として、
HTMLもあくまでそういう文字列の集合体なので、
PHPから「そういうHTMLになるようにPHP側で出力のコードを書くようにしてください。
ブラウザの「ソースの表示」などで見れるものが「PHPから出力されたもの」です。
どうしてもPHPタグを書きたくないのでしたら、SmartyやTwigなどのPHPテンプレートエンジンを利用すれば
ロジックと画面の分離は可能ですが、やはり「出力」が分かっている前提になります。
もしくはヒアドキュメントを用いれば見た目はシンプルになります(が全体像が見えなくなるので多用は避けた方がいいかもしれません)
投稿2023/01/18 08:30
編集2023/01/18 08:32総合スコア80875
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。