
同じフォームでデータを送信させたいと考えています。
サーバ環境変数の $_SERVER['PHP_SELF'] を使用すれば
出来そうなところまではたどり着いたのですが、具体的な
記載方法が分かりません。
やりたい事としましては、まず最初の画面で1行ずつ何かデータを
表示させて、チェックボックスで複数選択可能な状態にします。
書式方法が分からないところですが、チェックボックスで選択した
データのみを、input type='submit'を使って同じフォームでデータ
を送信させて、チェックボックスにて選択したデータのみを画面に
表示させたいと考えています。
どなたかお分かりになる方がいらっしゃいましたら、簡単な具体例
として記載方法を教えて頂けないでしょうか。
No.3ベストアンサー
- 回答日時:
>> 結果画面には、チェックボックスで選択したデータのみを表示させたいと考えています。
以下参照
<?php
print "<html><body>";
if (isset($_POST['cbox'])){
foreach($_POST['cbox'] as $val){
$val=htmlspecialchars($val);
print "チェック${val}が選択されました<br>\n";
}
} else {
print <<<_FORM_
<form action="" method="post">
<input type="checkbox" name="cbox[]" value="1">チェック1<br>
<input type="checkbox" name="cbox[]" value="2">チェック2<br>
<input type="checkbox" name="cbox[]" value="3">チェック3<br>
<input type="submit">
</form>
_FORM_;
}
print "</body></html>";
?>
No.2
- 回答日時:
>> 簡単な具体例として記載方法を教えて頂けないでしょうか。
例を示します
<?php
print <<<_FORM_
<html><body>
<form action="" method="post">
<input type="checkbox" name="cbox[]" value="1">チェック1<br>
<input type="checkbox" name="cbox[]" value="2">チェック2<br>
<input type="checkbox" name="cbox[]" value="3">チェック3<br>
<input type="submit">
</form>
_FORM_;
if (isset($_POST['cbox'])){
print "<hr>";
foreach($_POST['cbox'] as $val){
$val=htmlspecialchars($val);
print "チェック${val}が選択されました<br>\n";
}
}
print "</body></html>";
?>
>> サーバ環境変数の $_SERVER['PHP_SELF'] を使用すれば出来そうなところまではたどり着いたのですが・・・
$_SERVER['PHP_SELF'] をFormのactionに使うと脆弱性の問題があります。空欄にするか $_SERVER['SCRIPT_NAME']を使いましょう
上記サンプルでは、formの行を下記に変更してもOKです
<form action="${_SERVER['SCRIPT_NAME']}" method="post">
この回答への補足
返答有難う御座います。
教えて頂いた内容でほぼ希望は満たせているのですが、
結果画面には、チェックボックスで選択したデータのみを
表示させたいと考えています。
最初の画面で表示するチェックボックスの選択画面は
結果画面には表示させない方法をご存知でしたら教えて
頂けますでしょうか。
No.1
- 回答日時:
inputタグにname属性を入れればできますよ。
<input type="submit" name="check">に変更して、あとはPHPの仕事です。
そのプログラムの書き方はこんな感じです。
<?php
(中略)
if ($_POST['name']=="check") {
print $_POST['hoge']."<BR>";
(中略)
}
なお、同様の質問が過去に投稿されており、if ($_POST['name']=="check")のところは「if ($_POST['Submit'])」としても大丈夫なようです。
この回答への補足
返信有難う御座います。
申し訳御座いません。PHPの知識が乏しいため、
おっしゃって頂いている事は何となくは分かるのですが、
具体的にスクリプトに起こすことが出来ず、困っています。
大変申し訳御座いませんが、何か簡単なチェックボックスの
画面部分を加えたスクリプトを教えて頂けると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
PHPのエラーの解消法について教...
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
配列をhiddenで
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
フォームボタンを押すたびに数...
-
PHPで、ボタンを押すと同じペー...
-
同じページでフォームデータを...
-
ラジオボタンをsessionで使いたい
-
フォームでのリセットを使う方法
-
POSTやGETの変数をフォーム無し...
-
HTMLフォームで複数選択のチェ...
-
PHPで画像の渡しが上手く行きま...
-
アップロードの際にファイルパス
-
テキストボックスに初期値を入れる
-
フォームへの前回入力値をクリ...
-
HTMLのリンクをクリックするこ...
-
フォームのテキストボックスに...
-
画面が更新されてもチェックボ...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
おすすめ情報