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

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

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

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

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Q&A

解決済

1回答

480閲覧

PHPフォーム・チェックボックスとテキストの値の取り方

bb_qq

総合スコア11

PHP

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

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

0グッド

0クリップ

投稿2019/06/21 00:55

前提・実現したいこと

PHPで問い合わせフォームを作成しています。

□選択肢A 「 記入欄(数字) 」年生
□選択肢B 「 記入欄(数字) 」年生
□選択肢C 「 記入欄(数字) 」年生



等をチェックボックスとテキストボックス(数字)(「 」内のみ入力)で取得したいです。

発生している問題・エラーメッセージ

チェックボックスとテキストボックスで、値を引っ張ってくると、
確認ページ(confirm)での表示が、
選択肢A 2 選択肢B 3 ・・・
となり「年生」が表示されません。そこでconfirm.htmlに直接「年生」を打ち込むと、
チェックボックスにチェックが入っていない「年生」まで項目分だけ表示され、
選択肢A2年生 選択肢B3年生 年生 年生 年生・・・ となってしまいます。

if構文を使うのかと思い調べてみましたが、
checkされているときに、「✕年生」まで値を取る方法がわかりません。

PHP初心者で大変恐縮ですが、どなたか教えて頂けないでしょうか。

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

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

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

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

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

maisumakun

2019/06/21 00:57

入力フォームにどのようにnameを振って、再表示ではそれをどのように取得・表示しているのでしょうか。
退会済みユーザー

退会済みユーザー

2019/06/21 00:59 編集

ソースコードも示さず、何をどう直してほしいのやら。やり方が間違っていることを指摘してほしいのであれば、包み隠さずソースコードを示すべきではないかと。第三者に再現してもらって改善案を示してもらいたいのであれば。
azuapricot

2019/06/21 01:09

コードもなしに教えてくださいは無理難題です。 回答者はエスパーでも超人でもありません。 今の状態だと「へー。どっか間違ってるんでしょー頑張ってね。」で終わりです
m.ts10806

2019/06/21 01:59

azuapricotさん というより「そういう風に組んだから」ですね
bb_qq

2019/06/24 09:26

大変失礼いたしました、皆さんのおっしゃる通りです。 今後質問させていただく際は、ソースコードを掲載いたします。
guest

回答1

0

ベストアンサー

jsと連携してこんな風にする

javascript

1<?PHP 2$ch=filter_input(INPUT_POST,"ch",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 3$gakunen=filter_input(INPUT_POST,"gakunen",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 4if(!is_null($ch)){ 5 print_r($ch); 6 print_r($gakunen); 7} 8?> 9<script> 10window.addEventListener('DOMContentLoaded', function(e){ 11 [].forEach.call(document.querySelectorAll('[name="ch[]"]'),function(x){ 12 x.addEventListener('change',function(e){ 13 var flg=x.checked; 14 x.closest('div').querySelector('[name="gakunen[]"]').disabled=!flg; 15 }); 16 }); 17}); 18</script> 19<form method="post"> 20<div><label><input type="checkbox" name="ch[]" value="a">選択肢A</lable> 「<input type="text" name="gakunen[]" value="" pattern="[1-3]" disabled required>」年生</div> 21<div><label><input type="checkbox" name="ch[]" value="b">選択肢B</lable> 「<input type="text" name="gakunen[]" value="" pattern="[1-3]" disabled required>」年生</div> 22<div><label><input type="checkbox" name="ch[]" value="c">選択肢C</lable> 「<input type="text" name="gakunen[]" value="" pattern="[1-3]" disabled required>」年生</div> 23<input type="submit" value="send"> 24</form>

追記

PHPだけでジャッジしたいならこう

PHP

1<?PHP 2$ch=filter_input(INPUT_POST,"ch",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 3$gakunen=filter_input(INPUT_POST,"gakunen",FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); 4if(!is_null($ch)){ 5 $keys=array_keys($ch); 6 $gakunen=array_filter($gakunen,function($x) use($keys){ 7 return in_array($x,$keys)!==false; 8 },ARRAY_FILTER_USE_KEY); 9 print_r($gakunen); 10} 11?> 12<form method="post"> 13<div><label><input type="checkbox" name="ch[0]" value="a">選択肢A</lable> 「<input type="text" name="gakunen[0]" value="">」年生</div> 14<div><label><input type="checkbox" name="ch[1]" value="b">選択肢B</lable> 「<input type="text" name="gakunen[1]" value="">」年生</div> 15<div><label><input type="checkbox" name="ch[2]" value="c">選択肢C</lable> 「<input type="text" name="gakunen[2]" value="">」年生</div> 16<input type="submit" value="send"> 17</form>

投稿2019/06/21 01:09

編集2019/06/21 03:09
yambejp

総合スコア114585

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

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

bb_qq

2019/06/24 09:26

ありがとうございます!解決いたしました。 ソースコードを掲載しておらず、大変失礼いたしました、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問