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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

574閲覧

inputのradioを選択し送信する前にvalueの値を取得する方法

emi_ono

総合スコア83

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2022/09/22 06:17

編集2022/09/22 07:03

前提

予約システムを作っています。
スタッフを選択するとそのスタッフidの値を受け取ってその値によって予約日時を取得するSQL文の条件変更したいのですが、どのように考えれば良いのか詰まってしまいました。アドバイスをいただきたいです。

現在は
①メニューを選択

②日時を選択(ここでSQLを使い既に予約が入っている日時を照合して日時を表示させています)

③連絡先などを入力

④送信
という流れなのですが、①メニューを選択の前にスタッフ選択を追加して
②日時を選択のSQLの条件にスタッフidを追加し、そのスタッフidを次のページへ送信したいです。

実現したいこと

  • inputのvalue値をラジオボタンを選択すると同時に受け取ってその値を変数に代入する
  • inputのvalue値では受け取れない場合、他の方法を教えていただきたいです

該当のソースコード

全体(一部抜粋)

PHP

1<?php 2$files = getAllFile( $shop_id ); 3?> 4<main> 5<form method="POST" action="../common/3.0.1/check.php"> 6<!-- ↓↓スタッフ選択↓↓ --> 7<section class="area staff cf"> 8<div class="title"> 9<h3><span>Step1</span>スタッフを選ぶ</h3> 10</div> 11<div class="contentWrap"> 12<div class="staffitem"> 13<?php foreach($files as $file):?> 14<ul class="radio-select"> 15<li> 16<input type="radio" id="radio-01" value="<?php echo $file['image_id']?>" name="staff"> 17<label for="radio-01"><?php echo $file['staff_name'];?></label> 18</li> 19</ul> 20<?php endforeach;?> 21</div> 22</div> 23</section> 24<!-- ↑↑スタッフ選択↑↑ --> 25<!-- ↓↓料金選択↓↓ --> 26<section class="area rate-plan cf"> 27<div class="title"> 28<h3><span>Step2</span>料金を選ぶ</h3> 29</div> 30<div class="contentWrap"> 31<table> 32<tbody> 33<!--料金<tr>開始--> 34<?php 35for ( $i = 0; $i < count( $arry ); $i++ ) { 36 $menuName = $arry[ $i ][ 'menuName' ]; 37 $menuUrl = $arry[ $i ][ 'menuUrl' ]; 38 ?> 39<tr> 40<th scope="row" class="cf"><img src="../../img/photo/common<?php echo $menuUrl; ?>" alt=""/><?php echo $menuName; ?></th> 41<?php 42for ( $j = 0; $j < count( $arry[ $i ][ 'menuContents' ] ); $j++ ) { 43 $send = $arry[ $i ][ 'menuContents' ][ $j ][ 'send' ]; 44 $id = $arry[ $i ][ 'menuContents' ][ $j ][ 'ID' ]; 45 $text = $arry[ $i ][ 'menuContents' ][ $j ][ 'text' ]; 46 $time = $arry[ $i ][ 'menuContents' ][ $j ][ 'time' ]; 47 ?> 48<td><input type="radio" name="menu" value="<?php echo $send; ?>" id="radio<?php echo $id;?>" class="<?php echo $time; ?>" <?php if (isset($menu) && $menu == "$send") echo "checked";?>/> 49<label for="radio<?php echo $id;?>" class="radio"><?php echo $text; ?></label></td> 50<?php }?> 51</tr> 52<?php }?> 53<!--料金<tr>終了--> 54</tbody> 55</table> 56<p class="note"><?php echo $menuNote; ?></p> 57</div> 58</section> 59<!-- ↑↑料金選択↑↑ --> 60<!-- ↓↓日時選択↓↓--> 61<section class="area dayTime cf"> 62<div class="title"> 63<h3><span>Step3</span>日時を選ぶ</h3> 64</div> 65<div class="contentWrap"> 66<div class="dayForm"> 67<table> 68<th class="no">時間</th> 69<th> <?php echo $todayFmt1; ?><?php echo $week[ $todayWeek ];?><br> 70<?php 71if ( in_array( $week[ $todayWeek ], $closed ) ) { 72 echo "<span>定休日</span>"; 73} elseif ( in_array( $today, $closedDay ) ) { 74 echo "<span>休業日</span>"; 75} else { 76 echo "&nbsp;"; 77} 78?></th> 79<th> <?php echo $tomorrowFmt1; ?><?php echo $week[ $tomorrowWeek ];?><br> 80<?php 81if ( in_array( $week[ $tomorrowWeek ], $closed ) ) { 82 echo "<span>定休日</span>"; 83} elseif ( in_array( $tomorrow, $closedDay ) ) { 84 echo "<span>休業日</span>"; 85} else { 86 echo "&nbsp;"; 87} 88?></th> 89<th> <?php echo $inTwoDaysFmt1; ?><?php echo $week[ $inTwoDaysWeek ];?><br> 90<?php 91if ( in_array( $week[ $inTwoDaysWeek ], $closed ) ) { 92 echo "<span>【定休日】</span>"; 93} elseif ( in_array( $inTwoDays, $closedDay ) ) { 94 echo "<span>休業日</span>"; 95} else { 96 echo "&nbsp;"; 97} 98?></th> 99<?php 100foreach ( $daterange as $date ) { 101 $time = $date->format( "H:i:s" ); 102 $timeMin = $date->format( "H:i" ); 103 //日時(今日) 104 $variable = $today . ' ' . $time; 105 $endTime = date( "H:i:s", strtotime( $time . "+15 minute" ) ); 106 $variableEnd = $today . ' ' . $endTime; 107 //echo "今日".$variable."/".$endTime."/".$variableEnd; 108 //日時(明日) 109 $variable2 = $tomorrow . ' ' . $time; 110 $endTime2 = date( "H:i:s", strtotime( $time . "+15 minute" ) ); 111 $variableEnd2 = $tomorrow . ' ' . $endTime2; 112 //echo "明日".$variable2."/".$endTime2."/".$variableEnd2; 113 //日時(明後日) 114 $variable3 = $inTwoDays . ' ' . $time; 115 $endTime3 = date( "H:i:s", strtotime( $time . "+15 minute" ) ); 116 $variableEnd3 = $inTwoDays . ' ' . $endTime3; 117 //echo "明後日".$variable3."/".$endTime3."/".$variableEnd3; 118 ?> 119<tr class='day_table'> 120<td class="time"><?php echo $timeMin; ?></td> 121<!--今日--> 122<td><input type='radio' name='day' id='<?php echo $variable; ?>' value='<?php echo $variable; ?>' 123 <?php 124 //データーベースから呼び出す 125 $sql = "SELECT 126 count(*) 127 FROM 128 customer3 129 WHERE 130 shop_id = ".$shop_id." 131 AND 132 reserve_day = '".$today."' 133 AND (start_time < '".$variableEnd."' AND end_time >= '".$variable."')"; 134 135 $stmt = $dbh->query($sql); 136 $num = $stmt->fetchColumn(); 137 138 if ( in_array( $week[ $todayWeek ], $closed ) || in_array( $today, $closedDay )) { 139 echo 'disabled'; 140 }elseif ( in_array( $today." ".$timeMin, (array)$breakTime ) ) { 141 echo 'disabled'; 142 }elseif ( strtotime( date( 'H:i' ) ) > strtotime( $time ) ) { 143 echo 'disabled'; 144 }elseif($time <= $HalfAnHour ){ 145 echo 'disabled'; 146 }elseif($num >= $reservFrame){ 147 echo 'disabled class="first-disabled"'; 148 } 149 ?>> 150<label for='<?php echo $variable;?>'> 151<?php 152if ( in_array( $week[ $todayWeek ], $closed ) || in_array( $today, $closedDay ) ) { 153 echo "<i class='fas fa-minus'></i>"; 154} elseif ( strtotime( date( 'H:i' ) ) > strtotime( $timeMin ) ) { 155 echo "<i class='fas fa-minus'></i>"; 156} elseif ( in_array( $today . " " . $timeMin, ( array )$breakTime ) ) { 157 echo "<i class='fas fa-minus'></i>"; 158} elseif ( $num >= $reservFrame ) { 159 /*echo "予約済";*/ 160 echo "<span class='mark'>×</span>"; //× 161} elseif ( $time <= $HalfAnHour ) { 162 echo "TEL"; 163} else { 164 echo "<span class='result1'></span>"; 165 /*echo '<span class="mark2">●</span>';*/ 166} 167?> 168</label></td> 169<!--明日--> 170<td><input type='radio' name='day' id='<?php echo $variable2; ?>' value='<?php echo $variable2; ?>' 171 <?php 172 //データーベースから呼び出す 173 $sql = " 174 SELECT 175 count(*) 176 FROM 177 customer3 178 WHERE 179 shop_id = ".$shop_id." 180 AND 181 reserve_day = '".$tomorrow."' 182 AND 183 (start_time <'".$variableEnd2."' AND end_time >= '".$variable2."') 184 "; 185 186 $stmt = $dbh->query($sql); 187 $num2 = $stmt->fetchColumn(); 188 189 if (in_array( $week[ $tomorrowWeek ], $closed ) || in_array( $tomorrow, $closedDay )) { 190 echo 'disabled'; 191 }elseif($num2 >= $reservFrame){ 192 echo 'disabled class="first-disabled"'; 193 }elseif ( in_array( $tomorrow." ".$timeMin, (array)$breakTime ) ) { 194 echo 'disabled'; 195 } 196 ?>> 197<label for='<?php echo $variable2;?>'> 198<?php 199if ( in_array( $week[ $tomorrowWeek ], $closed ) || in_array( $tomorrow, $closedDay ) ) { 200 echo "<i class='fas fa-minus'></i>"; 201} elseif ( $num2 >= $reservFrame ) { 202 /*echo "予約済";*/ 203 echo "<span class='mark'>×</span>"; //× 204} elseif ( in_array( $tomorrow . " " . $timeMin, ( array )$breakTime ) ) { 205 echo "<i class='fas fa-minus'></i>"; 206} else { 207 echo "<span class='result1'></span>"; 208 /*echo '<span class="mark2">●</span>';*/ 209} 210?> 211</label></td> 212<!--明後日--> 213<td><input type='radio' name='day' id='<?php echo $variable3; ?>' value='<?php echo $variable3; ?>' 214 <?php 215 //データーベースから呼び出す 216 $sql = " 217 SELECT 218 count(*) 219 FROM 220 customer3 221 WHERE 222 shop_id = ".$shop_id." 223 AND 224 reserve_day = '".$inTwoDays."' 225 AND 226 (start_time <'".$variableEnd3."' AND end_time >= '".$variable3."') 227 "; 228 229 $stmt = $dbh->query($sql); 230 $num3 = $stmt->fetchColumn(); 231 232 if (in_array( $week[ $inTwoDaysWeek ], $closed) || in_array( $inTwoDays, $closedDay)) { 233 echo 'disabled'; 234 }elseif($num3 >= $reservFrame){ 235 echo 'disabled class="first-disabled"'; 236 }elseif ( in_array( $inTwoDays." ".$timeMin, (array)$breakTime ) ) { 237 echo 'disabled'; 238 } 239 ?>> 240<label for='<?php echo $variable3;?>'> 241<?php 242if ( in_array( $week[ $inTwoDaysWeek ], $closed ) || in_array( $inTwoDays, $closedDay ) ) { 243 echo "<i class='fas fa-minus'></i>"; 244} elseif ( $num3 >= $reservFrame ) { 245 /*echo "予約済";*/ 246 echo "<span class='mark'>×</span>"; //× 247} elseif ( in_array( $inTwoDays . " " . $timeMin, ( array )$breakTime ) ) { 248 echo "<i class='fas fa-minus'></i>"; 249} else { 250 echo "<span class='result1'></span>"; 251 /*echo '<span class="mark2">●</span>';*/ 252} 253?> 254</label></td> 255</tr> 256<?php }?> 257</table> 258</div> 259</div> 260</section> 261<!-- ↑↑日時選択↑↑--> 262<!-- ↓↓送信ボタン↓↓--> 263<div class="cp_submit"> 264<input type="hidden" name="shop_id" value="<?php echo $shop_id; ?>"> 265<input type="hidden" name="shop_name" value="<?php echo $shop_name; ?>"> 266<input type="hidden" name="shop_url" value="<?php echo $shop_url; ?>"> 267<input type="hidden" name="shop_tel" value="<?php echo $shop_tel; ?>"> 268<input type="hidden" name="shop_mail" value="<?php echo $shop_mail; ?>"> 269<input type="hidden" name="temporary" value="<?php echo $temporary; ?>"> 270<input type="hidden" name="bg" value="<?php echo $bg; ?>"> 271<input type="submit" value="確認画面へ" class="submit_a1"/> 272</div> 273<!-- ↑↑送信ボタン↑↑--> 274</form> 275 276 277

試したこと

最初は
inputではなく<a>タグを使って値をパラメータを使って同じページに送信し値を受け取ろうと考えたのですが、、うまくいきませんでした。

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

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

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

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

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

m.ts10806

2022/09/22 06:26

コードはもっと全容があったほうが良いです。 本件と直接は関係ないですが、 IDは画面内に1つというHTMLのルールがあるので、そのあたりを配慮しておかないと JavaScriptなどで正しく要素を扱えなくなります。 ※nameがないのでそもそもどのように送信させようとしているのか見えない部分もありますが
emi_ono

2022/09/22 07:04

ご指摘ありがとうございます。 コードの全体を追加しました。 またnameを忘れていました。こちらも追加しました。
guest

回答2

0

自己解決

jsで取得した値でSQL文を変更するのは難しそうなので、パラメーターを使ってvalue値を取得しSQL文を変更する事で実現しました。
ありがとうございます。

投稿2022/09/24 04:06

emi_ono

総合スコア83

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

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

0

> input type="radio" id="radio-01"

idを振った要素をループして設定することはできません(idは同ページ内でユニークに設定が必要)

質問内容がよくわからないのですが、選択されたラジオボタンの値をjsで得たいなら
document.querySelector('[type=radio]:checked').value
を参照してください

投稿2022/09/22 07:00

yambejp

総合スコア114876

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

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

emi_ono

2022/09/22 11:30

ありがとうございます。 >document.querySelector('[type=radio]:checked').valueを参照してください 参考サイトを見つける事ができました。 > input type="radio" id="radio-01" id部分は削除しました。 見つけたサイトを参考に(https://pisuke-code.com/js-way-to-get-radio-group-value/)ラジオボタンの値を取得する事ができました。 <script> window.addEventListener('load', function(){ const radioGroup = document.getElementById('sweetGroup'); /// ラジオのクリックイベントを取得 radioGroup.addEventListener('click', function(){ /// 選択された値とか要素内テキスト取得 var radio = document.querySelector('[name="staff"]:checked'); var val = radio.value; /// ラジオグループ下にそれらを表示 var elemShowSweet = document.getElementById('showSweet'); elemShowSweet.innerHTML = val; }); }); </script> ここで取得したelemShowSweet.innerHTML = val;部分を 新たに <div id="showSweet"> <!-- ここに選択値とか表示 --> </div> 追加しここに表示させる事はできたのですが、 $sql = "SELECT count(*) FROM customer3 WHERE shop_id = ".$shop_id." AND reserve_day = '".$today."' AND (start_time < '".$variableEnd."' AND end_time >= '".$variable."')"; の where句に shop_id = ".$shop_id." かつ image_id = 0 または image_id = 「取得した値」 としたいのですが、どのように書けば良いでしょうか。sql文の中に書くのは難しいでしょうか。
emi_ono

2022/09/24 04:03

jsで取得した値でSQL文を変更するのは難しそうなので、パラメーターを使ってvalue値を取得する事にしました。 回答してくださり、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問