![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
phpの変数として<?= ~ ?>は設定できないのでしょうか?
例)
$test = "<?= $smple ?>"
<html>
<body>
<p>$test</p>
</body>
</html>
上の記述だと文字列として扱われてしまうので、以下のように表示されてしまいます。
<html>
<body>
<p><?= $smple ?></p>
</body>
</html>
変数を使用して、通常のphp構文のように使用することはできないのでしょうか?
若しくは、同じことを実現するためには別のやり方や関数などを用いなければならないのでしょうか?
基本的なことを質問している気がしますが、どなたかご教授願います。
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
maenet1972です。
提示されたソースを見て、ようやく理解出来ました。
つまり、"smp01""smp01"を判別して出力方法を変えたい訳ですね。
単純に"<?=~?>"は必要ありませんので、そのまま変数を入れてください。
$smpnum01 = $_POST[smp01];
switch ( $smpnum01 ) {
case 1:
$str01 = "パターン01";
break;
case 2:
$str01 = "パターン02<select name='smp02' onChange='document.myform.submit();'><option value='1'" . ($smpnum02==1) ? " selected":"".">選択01</option>
・・・※以下略
</select><br>{$str02}<br>";
break;
・・・※以下略
なので、今回の件はincludeは全く必要としません。
この回答への補足
早速試してみましたところ、正しく表示されませんでした。
問題となる『switch ( $smpnum01 ) { ~ の case2』の箇所ですが、
selectboxが全く表示されずに、$str02の変数部分だけに「selected」と表示されてしまいます。
これは、一体なぜでしょう???
よろしくお願いします。
maenet1972さん、有難うございます。
お陰様で希望通りの動作ができました。
tany180sxさんに掲示された記述とあわせて考えてみた後に、
クォーテーションの使い方を変更しました。
以下、ご参考までに。
<option value='1'" .( $smpnum02==1?' selected':'' ) .">test01</option>
これでバッチリです。
殆どjsを使うことなくできそうです。
No.4
- 回答日時:
$sample = 'hoge';
$test = '<?= $sample ?>';
echo '<p>' . eval('?>' . $test) . '</p>';
とすればできなくもないですが。
> <option value='1'<?= ( $smpnum02==1?' selected':'' ) ?>>選択01</option>
echo '<option' . ($smpnum02 == 1 ? ' selected' : '') . '>選択01</option>';
ではだめなんでしょうか。
SELECTは大概めんどくさいので関数なりライブラリ化しといた方がいいかも。
$select = form_select($name, $value, $collection, $attributes);
あとは、根本的に長いHTMLはテンプレートとして別に切り出した方がいいかも。
それと $_SERVER['PHP_SELF'] はNG。
この回答への補足
<?= ?>の使用は強引過ぎて分かり難いですね。
>ではだめなんでしょうか。
ダメということはありません。慣れや使い勝手の問題でしょうか・・・。
>SELECTは大概めんどくさいので関数なりライブラリ化しといた方がいいかも。
そうですね。実際のoptionデータは別のファイルデータやDBからのデータをselet文で集めてHTML上には<option></option>内には変数1行しか書きません。
>それと $_SERVER['PHP_SELF'] はNG。
スイマセン。
本ちゃん用ではなく、ベースを作っていたので端折ってしまいました
(汗
>あとは、根本的に長いHTMLはテンプレートとして別に切り出した方がいいかも。
“アドバイス”ではなく“回答”ということなので、テンプレート化したファイルを読み込む時の記述など簡単な例を挙げて頂けると助かります。
よろしくお願いします。
No.2
- 回答日時:
minoru4891さんがやりたい事は何となくわかりますが、HTML本文中にphpを実行する場合、基本的にphpからHTMLを出力した時点でphpは実行されません。
ですが、そのHTML(<?= $smple ?>を含めた)をサーバーにファイルとして保存し、includeした場合は“$smple"はきとんとPHPの変数として評価されます。ご理解されましたか?
この回答への補足
別の方の補足に詳細を明記したのですが、
補足のサンプルコードの場合、includeを使用するには、どの部分にどのように記述すればよいのでしょうか?
若しくは、どのように修正をすればよいのでしょうか?
よろしくお願いします。
No.1
- 回答日時:
あなたが理想としている出力結果はどういう状態なんでしょうか。
この回答への補足
やはり、詳細を書かないと答えようがないですよね。
最終目的はswitch~case~を使ってリストボックスを連動させてページの表示をさせたいのです。JavaScriptを多用すればできるのですが、
あまり使いたくないので奮闘中でした。
以下、サンプルソースを掲示します。
<?php
$smpnum02 = $_POST[smp02];
switch ( $smpnum02 ) {
case 1:
$str02 = "結果01";
break;
case 2:
$str02 = "結果02";
break;
case 3:
$str02 = "結果03";
break;
default:
break;
}
$smpnum01 = $_POST[smp01];
switch ( $smpnum01 ) {
case 1:
$str01 = "パターン01";
break;
case 2:
$str01 = "パターン02<select name='smp02' onChange='document.myform.submit();'>
<option value='1'<?= ( $smpnum02==1?' selected':'' ) ?>>選択01</option>
↑ここ
<option value='2'<?= ( $smpnum02==2?' selected':'' ) ?>>選択02</option>
↑ここ
<option value='3'<?= ( $smpnum02==3?' selected':'' ) ?>>選択03</option>
↑ここ
</select><br><?= $str02 ?><br>";
↑ここ
break;
case 3:
$str01 = "パターン03<select name='test'>
<option value='1'>その他01</option>
<option value='2'>その他02</option>
</select>";
break;
default:
break;
}
?>
<html>
<body>
<form action="<?=$_SERVER[PHP_SELF]?>" method="POST" name="myform">
<select size="1" name="smp01" onChange="document.myform.submit();">
<option value='1'<?= ( $smpnum01==1?' selected':'' ) ?>>テスト01</option>
<option value='2'<?= ( $smpnum01==2?' selected':'' ) ?>>テスト02</option>
<option value='3'<?= ( $smpnum01==3?' selected':'' ) ?>>テスト03</option>
</select><br>
<?= $str01 ?><br>
</form>
</body>
以上ですが、↑でここと指している部分が悩みドコです。
もう一方のご指摘通りincludeも考えたのですが、どのように記述してよいか混乱してしまいました。他にも色々と試したのですが、
知識不足のためか解決できません。
何か良い方法はありますでしょうか?
この方法ではやはり無理があるのでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP php ログイン 1 2022/11/01 00:24
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでのセレクトボックスの値を...
-
Smartyで、セレクトボックスが...
-
mysql データ登録
-
連動させたいセレクトボックス...
-
セレクトフォームで選択した複...
-
php プルダウンメニュー 時刻...
-
選択したタグ、入力した検索文...
-
頭文字→大学→学部を選択する入...
-
PHP で画面の一部だけを変えたい。
-
<select>文、foreachと初期値設定
-
選択されたプルダウンの値を変...
-
複数のセレクトボックスで
-
POSTしたデータがリストボック...
-
プルダウンとCSVの連動
-
PHPで診断しておすすめの本を紹...
-
PHPでURLにジャンプするには?
-
検索時の選択内容を保持する方法
-
Flaskでサーバー立ち上げに関して
-
PHPの関数実行
-
laravelを利用してコントロール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング言語で、使える...
-
プルダウンとCSVの連動
-
複数のセレクトボックスを1つに...
-
複数 selectフォームから今回on...
-
【PHP&JavaScript】複数の別ウ...
-
「"」(ダブルクォーテーション)...
-
phpで重複チェック
-
phpでのセレクトボックスの値を...
-
php セレクトボックス 値取得
-
<select>文、foreachと初期値設定
-
ラジオボタンの値を受け取ってP...
-
2つのプルダウンメニュから受け...
-
連動させたいセレクトボックス...
-
PHP セレクトボックスの値 GET...
-
Smartyで、セレクトボックスが...
-
現在時刻を反映させた時刻のプ...
-
PHPとpostgreSQL プルダウンの作成
-
[Ethna]selectボックスに空値を...
-
GET又はPOSTで受け取るデータに...
-
プルダウンで選択された値を保持
おすすめ情報