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

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

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

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

Q&A

解決済

3回答

2533閲覧

radioの初期値について

LEMON_

総合スコア17

PHP

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

0グッド

1クリップ

投稿2020/04/17 07:39

編集2020/04/17 08:29

inputの中に

PHP

1<input type="text" name="" value="<?php htmlspecialchars($_POST["name"]), ENT_QUOTES)" ?>

などとするとエラーなどがあった時もエラー前に入力された値が初期値として入ると思うのですが、
type="radio"の時は初期値として”東京”や”男性”など入っているので初期値の引継ぎ方法がわかりません。
radioの場合初期値の引継ぎはすることができないのでしょうか?それとも何か方法はあるのでしょうか?

記述してみたのですが引き継がれませんでした

PHP

1$age = filter_input(INPUT_POST , "age"); 2 3<input type="radio" name="age" value=4<?php if($age === 4){ echo 'checked'; } ?> require><span class="contents">25歳未満</span><br> 4<input type="radio" name="age" value=3<?php if($age === 3){ echo 'checked'; } ?> require><span class="contents">25~45歳未満</span><br> 5<input type="radio" name="age" value=2<?php if($age === 2){ echo 'checked'; } ?> require><span class="contents">40~60歳未満</span><br> 6<input type="radio" name="age" value=1<?php if($age === 1){ echo 'checked'; } ?> require><span class="contents">60歳以上</span><br>

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

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

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

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

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

m.ts10806

2020/04/17 07:46

「これの実装」 「これをする」 は何をするのでしょう。どうなれば良いのでしょう。 要件を明確に記載してください。
LEMON_

2020/04/17 07:58

詳しく記述しなおしました
m.ts10806

2020/04/17 09:53

ちなみに、提示されたコードだけではformも何もないので再現不可能です。 全体の流れが分かる最小構成のコードをご提示ください。 「引き継ぐ」って何を伝えないのか今一つ分かりません。 得たい結果をそのまま表現されたほうが良いでしょう。
guest

回答3

0

そもそもnameが空なので送信されてない可能性もあります。
チェックされたvalueだけ送信します。
「初期チェック状態にしたい」のであれば、valueで判断し、checked属性を付与します。

PHP介す前に静的HTML書いて挙動確認した方が良いですよ。
「モック」といって、開発現場では普通に採用されます。

投稿2020/04/17 08:15

編集2020/04/17 09:55
m.ts10806

総合スコア80850

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

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

0

ベストアンサー

POST受信したのを、元のラジオボタンに反映する、っていう意味なら。

php

1<?php 2$sex = filter_input(INPUT_POST, 'sex'); 3?> 4<input type="radio" name="sex" value="man"<?php if ($sex === 'man') { echo ' checked="checked"';}?> />男性<br /> 5<input type="radio" name="sex" value="woman"<?php if ($sex === 'woman') { echo ' checked="checked"';}?> />女性<br /> 6<input type="radio" name="sex" value="hidden"<?php if ($sex === 'hidden') { echo ' checked="checked"';}?> />ひみつ<br />

checkedだけでも良かった気がしたけど、参考にした記事では「 checked="checked"」をつけていたので、そういうふうにしてみた。

投稿2020/04/17 08:03

編集2020/04/17 08:18
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

LEMON_

2020/04/17 08:25

```PHP $length = mb_strlen($_POST["favper"]); $age = filter_input(INPUT_POST , "age"); $who = filter_input(INPUT_POST , "who"); $place = filter_input(INPUT_POST , "place"); $ideal = filter_input(INPUT_POST , "ideal"); $no = filter_input(INPUT_POST , "no"); $friend = filter_input(INPUT_POST , "friend"); $angry = filter_input(INPUT_POST , "angry"); <div class="question"> <p>質問1:あなたの年齢はいくつですか?</p> </div> <input type="radio" name="age" value=4<?php if($age === 4){ echo 'checked'; } ?> require><span class="contents">25歳未満</span><br> <input type="radio" name="age" value=3<?php if($age === 3){ echo 'checked'; } ?> require><span class="contents">25~45歳未満</span><br> <input type="radio" name="age" value=2<?php if($age === 2){ echo 'checked'; } ?> require><span class="contents">40~60歳未満</span><br> <input type="radio" name="age" value=1<?php if($age === 1){ echo 'checked'; } ?> require><span class="contents">60歳以上</span><br> <div class="question"> <p>質問2:どんな人を恋人にしたい?</p> </div> <input type="radio" name="who" value=2<?php if($who === 2){ echo 'checked'; } ?> require><span class="contents">頼りになる人</span><br> <input type="radio" name="who" value=3<?php if($who === 3){ echo 'checked'; } ?> require><span class="contents">面白い人</span><br> <input type="radio" name="who" value=4<?php if($who === 4){ echo 'checked'; } ?> require><span class="contents">優しい人</span><br> <input type="radio" name="who" value=1<?php if($who === 1){ echo 'checked'; } ?> require><span class="contents">お金持ちな人</span><br> <div class="question"> <p>質問3:恋人と初デートに選ぶ場所は?</p> </div> <input type="radio" name="place" value=3<?php if($place === 3){ echo 'checked'; } ?> require><span class="contents">映画デート</span><br> <input type="radio" name="place" value=1<?php if($place === 1){ echo 'checked'; } ?> require><span class="contents">アウトドアデート</span><br> <input type="radio" name="place" value=4<?php if($place === 4){ echo 'checked'; } ?> require><span class="contents">食事デート</span><br> <input type="radio" name="place" value=2<?php if($place === 2){ echo 'checked'; } ?> require><span class="contents">お家デート</span><br> <div class="question"> <p>質問4:○○になりたい。○○とは?</p> </div> <input type="radio" name="ideal" value=1<?php if($ideal === 1){ echo 'checked'; } ?> require><span class="contents">優しい人</span><br> <input type="radio" name="ideal" value=4<?php if($ideal === 4){ echo 'checked'; } ?> require><span class="contents">イケメン or 美女</span><br> <input type="radio" name="ideal" value=3<?php if($ideal === 3){ echo 'checked'; } ?> require><span class="contents">スタイル抜群</span><br> <input type="radio" name="ideal" value=2<?php if($ideal === 2){ echo 'checked'; } ?> require><span class="contents">おしゃれ</span><br> <div class="question"> <p>質問5:恋人にしたくないのは?</p> </div> <input type="radio" name="no" value=2<?php if($no === 2){ echo 'checked'; } ?> require><span class="contents">無邪気で素直なタイプ</span><br> <input type="radio" name="no" value=4<?php if($no === 4){ echo 'checked'; } ?> require><span class="contents">知的で論理的なタイプ</span><br> <input type="radio" name="no" value=1<?php if($no === 1){ echo 'checked'; } ?> require><span class="contents">元気で明るいタイプ</span><br> <input type="radio" name="no" value=3<?php if($no === 3){ echo 'checked'; } ?> require><span class="contents">自由な破天荒タイプ</span><br> <div class="question"> <p>質問6:友達にするには</p> </div> <input type="radio" name="friend" value=3<?php if($friend === 3){ echo 'checked'; } ?> require><span class="contents">聞き上手な人</span><br> <input type="radio" name="friend" value=2<?php if($friend === 2){ echo 'checked'; } ?> require><span class="contents">しゃべり上手な人</span><br> <input type="radio" name="friend" value=4<?php if($friend === 4){ echo 'checked'; } ?> require><span class="contents">自分と似た人</span><br> <input type="radio" name="friend" value=1<?php if($friend === 1){ echo 'checked'; } ?> require><span class="contents">自分と真逆な人</span><br> <div class="question"> <p>質問7:人に怒ることはありますか?</p> </div> <input type="radio" name="angry" value=1<?php if($angry === 1){ echo 'checked'; } ?> require><span class="contents">毎日のように怒っている</span><br> <input type="radio" name="angry" value=2<?php if($angry === 2){ echo 'checked'; } ?> require><span class="contents">よく怒っている</span><br> <input type="radio" name="angry" value=3<?php if($angry === 3){ echo 'checked'; } ?> require><span class="contents">たまに怒る</span><br> <input type="radio" name="angry" value=4<?php if($angry === 4){ echo 'checked'; } ?> require><span class="contents">怒ることはほとんどない</span><br> </div> <input type="submit" value="診断する!" class="submit"> ``` こう記述してみてみたのですが、初期値引継ぎされませんでした…
退会済みユーザー

退会済みユーザー

2020/04/17 08:29 編集

たぶん「4checked」になってる。半角スペースを挟むべし。わたしのコードもそこを意識している。ちゃんとwebブラウザ上でhtmlソースを見て、出力を確認してほしい。
LEMON_

2020/04/17 08:40

無知ですいません… 4checkedになっているとはすべて選択状態になっているということでしょうか…?
退会済みユーザー

退会済みユーザー

2020/04/17 09:51 編集

<input type="radio" name="age" value=4checked require><span class="contents">25歳未満</span><br> って感じのHTMLソースになっているはずで、 <input type="radio" name="age" value="4" checked require><span class="contents">25歳未満</span><br> ってなるように半角スペースを入れないとダメなの。 ちなみに、value=4 じゃなくて value="4" の方が正しい。たいていのwebブラウザは問題なく表示できるだろうけど。 webブラウザで、HTMLソースを表示させて、そのHTMLソースをコピーして、 https://validator.w3.org/ で検査してみるといいよ。
guest

0

ラジオボタンはサービス側が候補をあげるものなのでpost値でvalueを
変更することはありません。
もちろんチェックを状態を引き継ぐことは可能です。

投稿2020/04/17 07:59

yambejp

総合スコア114806

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問