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

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

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

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

Q&A

解決済

1回答

2975閲覧

入力ミスやブランクがあるときに、既に入力されたデータを保持したまま、フォームを再表示したい

YukaSaku

総合スコア52

PHP

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

0グッド

0クリップ

投稿2017/04/24 15:51

ユーザーが入力ミスやブランクがあるのに、送信ボタンを押した時に、○○を入力してくださいというエラーメッセージを出すと同時に、入力されたデータをそのままキープしたフォームを再表示させたいんです。

以下は、display.phpで表示させてるincファイルになります。

データをキープしたい場合は、input属性にvalue='".@$$field."'を入れればいいと思うのですが、それではradioボタンとリストボックスの場合、どのようにインプットデータをキープしたらいいでしょうか。

php

1<?php 2 /* Program name: form_repair.inc */ 3 4$labels1 = array( "first_name" => "First Name:", 5 "last_name" => "Last Name:", 6 "phone" => "Phone:", 7 "email" => "Email:"); 8 9$prov_state = array("", "ON", "QC", "NS","NB","MB","BC","PE","SK","AB","NL","NT","YE","NU", 10 "AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","ID","IL","IA","KS","KY","LA","ME", 11 "MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND", 12 "OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"); 13 14$labels2 = array( "prov_state" => "Province or State:"); 15$labels3 = array( "city" => "City:"); 16 17$submit = "Submit"; 18?> 19<html> 20<head> 21 <style type='text/css'> 22 <!-- 23 form { 24 margin: 1.5em 0 0 0; 25 padding: 0; 26 float: center; 27 } 28 .field {padding-bottom: 1em;} 29 label { 30 font-weight: bold; 31 float: left; 32 width: 20%; 33 margin-right: 1em; 34 text-align: right; 35 } 36 #submit { 37 margin-left: 35%; 38 } 39 --> 40 </style> 41</head> 42<body> 43<h2>Please fill up this form below</h2> 44<?php 45 /* loop that displays the form label1*/ 46 echo "<form action='checkblank_.php' method='post'>"; 47 foreach($labels1 as $field => $label1) 48 { 49 echo "<div class='field'><label for='$field'>$label1</label> 50 <input id='$field' name='$field' type='text' value='".@$$field."' 51 size='50%' maxlength='65' /></div>\n"; 52 } 53 54 55 /* loop that displays the form label2 */ 56 echo "<form action='checkblank_.php' method='post'>"; 57 foreach($labels2 as $field => $label2) 58 { 59 echo "<label for='$field'>$label2</label>\n"; 60 } 61 /* loop that displays the prov */ 62 ?> 63 64 <select name="prov_state"> 65 <option value="NULL">Choose One</option> 66<option value="ON">ON</option> 67<option name="prov_state"value="QC">QC</option> 68<option name="prov_state"value="NS">NS</option> 69<option name="prov_state"value="NB">NB</option> 70<option name="prov_state"value="MB">MB</option> 71<option name="prov_state"value="BC">BC</option> 72<option name="prov_state"value="PE">PE</option> 73<option name="prov_state"value="SK">SK</option> 74<option name="prov_state"value="AB">AB</option> 75<option name="prov_state"value="NL">NL</option> 76<option name="prov_state"value="NT">NT</option> 77<option name="prov_state"value="YE">YE</option> 78<option name="prov_state"value="NU">NU</option> 79<option name="prov_state"value="AL">AL</option> 80<option name="prov_state"value="AK">AK</option> 81<option name="prov_state"value="AZ">AZ</option> 82<option name="prov_state"value="AR">AR</option> 83<option name="prov_state"value="CA">CA</option> 84<option name="prov_state"value="CO">CO</option> 85<option name="prov_state"value="CT">CT</option> 86<option name="prov_state"value="DE">DE</option> 87<option name="prov_state"value="FL">FL</option> 88<option name="prov_state"value="GA">GA</option> 89<option name="prov_state"value="ID">ID</option> 90<option name="prov_state"value="IL">IL</option> 91<option name="prov_state"value="IA">IA</option> 92<option name="prov_state"value="KS">KS</option> 93<option name="prov_state"value="KY">LA</option> 94<option name="prov_state"value="ME">ME</option> 95<option name="prov_state"value="MD">MD</option> 96<option name="prov_state"value="MA">MA</option> 97<option name="prov_state"value="MI">MI</option> 98<option name="prov_state"value="MN">MN</option> 99<option name="prov_state" value="MS">MS</option> 100<option name="prov_state"value="MO">MO</option> 101<option name="prov_state"value="MT">MT</option> 102<option name="prov_state"value="NE">NE</option> 103<option name="prov_state"value="NV">NV</option> 104<option name="prov_state"value="NH">NH</option> 105<option name="prov_state"value="NJ">NJ</option> 106<option name="prov_state"value="NM">NM</option> 107<option name="prov_state" value="NY">NY</option> 108<option name="prov_state"value="NC">NC</option> 109<option name="prov_state" value="ND">ND</option> 110<option name="prov_state" value="OH">OH</option> 111<option name="prov_state"value="OK">OK</option> 112<option name="prov_state" value="OR">OR</option> 113<option name="prov_state" value="PA">PA</option> 114<option name="prov_state"value="RI">RI</option> 115<option name="prov_state"value="SC">SC</option> 116<option name="prov_state"value="TN">TN</option> 117<option name="prov_state" value="TX">TX</option> 118<option name="prov_state"value="UT">UT</option> 119<option name="prov_state" value="VT">VT</option> 120<option name="prov_state"value="VA">VA</option> 121<option name="prov_state"value="WA">WA</option> 122<option name="prov_state" value="WV">WV</option> 123<option name="prov_state" value="WI">WI</option> 124<option name="prov_state" value="WY">WY</option> 125</select> 126<br><br> 127<?php 128/* echo "<SELECT>"; 129 foreach ($prov_state as $key => $value) { 130 $b = $key + 1; 131 echo "<OPTION value=" . $b . " >" . $value . "</OPTION>\n"; 132} 133 echo "</SELECT>"; 134 echo "<br>"."<br>";*/ 135 136 137 /* loop that displays the form label3 */ 138 echo "<form action='checkblank_.php' method='post'>"; 139 foreach($labels3 as $field => $label3) 140{ 141 echo "<div class='field'><label for='$field'>$label3</label> 142 <input id='$field' name='$field' type='text' value='".@$$field."' 143 size='50%' maxlength='65' /></div>\n"; 144 } 145 ?> 146 147 <h2>Please choose what do you want to repair.</h2> 148<input type="radio" name="repair" value="Roofing">Roofing 149<input type="radio" name="repair" value="Plumbing">Plumbing 150<input type="radio" name="repair" value="Window and Door">Window and Door 151<input type="radio" name="repair" value="Flooring and Carpet">Flooring and Carpet 152<input type="radio" name="repair" value="Fence and Deck">Fence and Deck 153<input type="radio" name="repair" value="Another">Another 154<br><br> 155 156 <?php 157 158 159 echo "<div id='submit'> 160 <input type='submit' value='$submit'></div>"; 161 ?> 162</form> 163</body> 164</html>

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

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

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

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

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

guest

回答1

0

ベストアンサー

option要素には selected、input要素(ラジオボタン&チェックボックス)には checked を追加すればよいです。

【selected 属性 | HTML5 タグリファレンス | W3 Watch Reference】
https://reference.hyper-text.org/html5/attribute/selected/

【select 要素 - HTML | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/select

【input 要素 - HTML | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input

投稿2017/04/24 16:04

編集2017/04/24 16:05
kei344

総合スコア69364

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

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

YukaSaku

2017/04/24 16:13

早速ご回答ありがとうございます! やってみます。
YukaSaku

2017/04/24 16:40

今、ラジオボタンに checked="checked"を加えてみました。すると、エラーでフォームが再表示された時に必ず一番最後の選択項目”Another”にチェックがついて戻ってきます。ユーザーが入力したまま戻すにはどうしたらいいでしょうか。
kei344

2017/04/24 16:46

ユーザーが選択したものだけに checked="checked" を付ければよいです。
YukaSaku

2017/04/24 17:04

ブランク送信しないために、最初にcheckedを入れておいてデフォルトでその項目を選択してある状態にするのはわかるのですが、”ユーザーが選択したものだけにcheckedをつける”というのは、if文を入れるということですか?
kei344

2017/04/24 17:09

そうですね。
YukaSaku

2017/04/24 17:09

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問