質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

4877閲覧

HTMLファイル内に、<?php ~~~?>と記述しても、記載内容がブラウザに反映されない

YO14

総合スコア45

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/05/28 02:50

実現したいこと

入力フォームに入力した値を、画面遷移せずに表示させる

書いたコード

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>shop-sample</title> 8</head> 9<body> 10 <form action="../kadai/shop-sample.html" method="POST"> 11 <input type="text" name="name"> 12 <input type="text" name="notax-price"> 13 <select name="tax"> 14 <option value="1.08">8%</option> 15 <option value="1.1">10%</option> 16 </select> 17 <input type="submit"> 18 </form> 19 <?php echo $_POST['name']; ?> 20</body> 21</html>

現在の状況

<?php ~~?>の記述箇所について、

・Special characters must be escaped : [ < ].(spec-char-escape)というエラーが、エディターに表示される
・ブラウザでは、「送信」を押しても何も表示されない
・ChromeのF12モードで見ると、<!--?php echo $_POST['name']; ?-->となっている

質問したいこと

HTMLファイル内にPHPを記述する方法は、上記の書き方だと誤りでしょうか。
以前、上記のような書き方で特段エラーも無く出力できていたような記憶があり、また、
https://webkaru.net/php/php-in-html/
のように、サイトでも上記のような記載例があるため、
何かエディタの設定がおかしいのか?HTMLの仕様が変わったのか?と混乱しています。

ググっても、<?php の< にエスケープ処理が必要である、というような記載も見当たりませんでした。
どなたかお詳しい方、ご教示いただけると有難く存じます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/28 02:51

普通の文字列をechoしたらどうなりますか?
maisumakun

2019/05/28 02:53

PHPを処理可能なサーバはどのように用意しましたか?
m.ts10806

2019/05/28 03:00

htmlファイルに書いて動かしたいのであればサーバーで別途設定が必要です
YO14

2019/05/28 03:55

すみません、Laravelのbladeテンプレートの記述方法と混同していました。
YO14

2019/05/28 04:29

「HTMLファイルの中にPHPが書ける」というのは、 Laravelのbladeテンプレートの「HTMLタグの中にPHPを記述できる」記述方法と混同しておりました。申し訳ありません。 phpファイル内にphpを記述するように変更いたします。
guest

回答2

0

当該記事は「HTML内に」としているだけで「HTMLファイルに」というわけではありません。
PHPは基本的にphpファイルに記述しWebサーバー上においてアクセスすることで動作します。
HTMLファイルに書いて動作させるためにはWebサーバー側の設定が必要です。

そもそも誤解を生む表現があるのが気になりますね。

HTML内にコードを挿入して(埋め込んで)使うことができます。

処理順番的にはブラウザから呼び出した場合、「PHPで何らかの処理を行って画面出力処理」→「HTML表示」なので、むしろ「PHPコード内でHTMLを出力することができる」と言ったほうが正しい表現となります。
入門系の記事とはいえ、正しくない表現を使うことで初心者が後で悩むことになります。(今回の質問もその手のもの)
特に「JavaScriptの情報をphpに渡したい・・・」とか。
「サーバーサイド」「クライアントサイド」の概念を理解しましょう。

とはいえ、「HTMLを出力することができる」も厳密には正しくない表現で、
PHPから見ればHTMLタグも単なる出力文字列に過ぎません。
ブラウザから確認することによってHTMLタグであると認識するわけです。

もし「PHPはこれから学習するところ」なのであれば、HTMLファイルでPHPを実行させるような特殊な設定をするのではなく、通常通り、PHPファイルにPHPコードを書いて実行するようにしてください。
正直なところ「HTMLファイルでPHPを実行させる」ようなやり方をしているところを実務では見たことないです。

本題

入力フォームに入力した値を、画面遷移せずに表示させる

JavaScriptで良くないですか?

投稿2019/05/28 03:38

編集2019/05/28 03:45
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YO14

2019/05/28 04:17

詳細なご回答ありがとうございます。 また、ご指摘の >入力フォームに入力した値を、画面遷移せずに表示させる >⇒JavaScriptで良くないですか? ですが、実装したい動きは、厳密には、 「formで入力された値を取得し、Classからインスタンス化したfunction(消費税計算関数)に渡して、 実行結果を、画面遷移せずに表示させたい」というものでした。 この場合ですと、formに入力された値はPOSTで受け取って何らかの変数に代入して関数に渡す、という処理が良いかなと思いますが、方向性としてはよさそうでしょうか(後出し情報で申し訳ありません…)
m.ts10806

2019/05/28 04:19 編集

「画面遷移しない」にこだわるならAjaxですね。いずれにしてもJavaScriptが有用です。 後だしは確かに良くないので、質問本文に追記しておいてください。
YO14

2019/05/28 04:30

ありがとうございます。 本来の質問とは別な質問になり、また私自身手元で未だ試行錯誤もしていない状態ですので、 いったんこの質問はクローズさせていただきます。 もしまた分からないところが出てきたら、ご相談させていただきたく存じます。
m.ts10806

2019/05/28 04:35

承知いたしました。
guest

0

ベストアンサー

HTMLファイル(.html)内にPHPを記述しても反映されません。
PHPファイル(.php)内にPHPを記述しましょう。

投稿2019/05/28 02:59

yasutomi

総合スコア2937

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YO14

2019/05/28 03:57

補足の方にもコメントありがとうございました。 「HTMLファイルの中にPHPが書ける」というのは、 Laravelのbladeテンプレートの「HTMLタグの中にPHPを記述できる」記述方法と混同しておりました。申し訳ありません。 phpファイル内にphpを記述するように変更いたします。
yasutomi

2019/05/28 04:02

■ 質問者様へ 回答や補足を元に解決できたようで何よりです。 ■ 低評価を付けた方へ 今後も嫌がらせ目的で低評価を付けた場合は 運営に通報させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問