入力画面(HTML)で都道府県をセレクトボックス
で入力したいんですが、入力画面のHTMLに北海道から沖縄まで書くのは大変だし、
もしかしたらエリアを限定するかもしれないので
外部ファイル(例:area_data)にカンマ区切りで北海道から沖縄まで書いたものを
optionの部分に入れたいと思います。
Perlでやるとこんな感じで出来たんですがこれをPHPでやるにはどうすればいいのか教えてください。
ただ単にPerl(の関数)をPHPに直すだけでできるものなのでしょうか?
----------------Perl(sample.cgi) mode:new---------------------------
##=====================
## 都道府県の設定 =
##=====================
if(!open(DATA,$area_data)){ &error('システムエラー','エリアデータファイルをオープンできません。'); }
@area_data = <DATA>;
close(DATA);
@area = split(/,/,$area_data[0]);
foreach(@area){
$option_val .= qq|<option value="$_">$_</option>\n|;
}
##===============================
## マクロリファレンス置き換え =
##===============================
foreach(@html){
s/_%option_val%_/$option_val/g;
}
##=========================
## 入力画面HTML 出力 =
##=========================
print <<"EOF";
Content-type: text/html
@html
EOF
exit;
}
---------------入力画面html------------------------------------------
<form name="form1" method="post" action="sample.cgi">
<input type="hidden" name="mode" value="new1">
<select name="address_a">
_%option_val%_
</select>
</form>
---------------Perl(sample.cgi) mode:new1----------------------------
入力確認画面のHTMLを開く
##===============================
## マクロリファレンス置き換え =
##===============================
foreach(@html){
s/_%address_a%_/$param{'address_a'}/g;
}
##=========================
## 入力確認画面HTML 出力 =
##=========================
print <<"EOF";
Content-type: text/html
@html
EOF
exit;
}
---------------入力確認画面html----------------------------------------
<form name="form1" method="post" action="sample.cgi">
<input type="hidden" name="mode" value="new2">
<input type="hidden" name="address_a" value="_%address_a%_">
_%address_a%_
</form>
No.1ベストアンサー
- 回答日時:
スタティックなHTMLをわざわざオーバーヘッド発生させてプログラム
処理する意味があるかどうか疑問ですが・・・
まず、外部ファイルは読み込みだけならわざわざファイルI/Oで
開いたり閉じたりすることもなく
file_get_contents()などで十分、例示のソースになぞらえると
<?
$fname="prefecture.txt";
$str=file_get_contents($fname);
$area = split(",",$str);
foreach($area as $val){
$option_val .= "<option value=\"{$val}\">{$val}</option>\n";
}
?>
みたいな感じ
ヒアドキュメントはPHPでもつかえるので、処理的にはほぼ
同等のことはできると思います。
いつもありがとうございます。
おかげさまで何とかなりました。
>スタティックなHTMLをわざわざオーバーヘッド発生させてプログラム
処理する意味があるかどうか疑問ですが・・・
確かにそうなんですよね。まぁ元にあるプログラムでは
テンプレート(HTML)と処理部分(PHP)は完全に分けて作ってるからなんですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CodeIgniter/set_value()
-
データベースから年月日を抽出...
-
コンボボックス(プルダウン)...
-
PHPでのセレクトボックスの値の...
-
PHP ボタンが押されたら処理を...
-
フォームへの前回入力値をクリ...
-
PHPの関数実行
-
検索時の選択内容を保持する方法
-
HTMLで前の画面に戻る時、入力...
-
(Excel)VBA ファイルパスからフ...
-
【HTML(PHP?)】複数のフォーム...
-
<input type="hidden" >で配列...
-
POSTデータをフォームに残す方法
-
Submit(送信ボタン)を押した...
-
パラメーターを隠す
-
formの外にあるチェックボック...
-
ラジオボタンをsessionで使いたい
-
$_REQUESTの意味を教えて下さい
-
適性診断テストみたいなものを...
-
フォームで作った送信ボタンが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンとCSVの連動
-
現在時刻を反映させた時刻のプ...
-
「"」(ダブルクォーテーション)...
-
選択したタグ、入力した検索文...
-
複数 selectフォームから今回on...
-
2つのプルダウンメニュから受け...
-
GET又はPOSTで受け取るデータに...
-
複数のセレクトボックスで
-
連動させたいセレクトボックス...
-
コンボボックス(プルダウン)...
-
php セレクトボックス 値取得
-
データベースにある値でリスト...
-
<select>文、foreachと初期値設定
-
PHP で画面の一部だけを変えたい。
-
セレクトフォームで選択した複...
-
phpでのセレクトボックスの値を...
-
ループでチェックボックスにche...
-
プログラミング言語で、使える...
-
Smartyで、セレクトボックスが...
-
奇数や偶数を調べる関数
おすすめ情報