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

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

新規登録して質問してみよう
ただいま回答率
86.12%
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で作成されています。

解決済

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

emi_ono
emi_ono

総合スコア77

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で作成されています。

2回答

0リアクション

2クリップ

264閲覧

投稿2022/09/22 06:17

編集2022/09/22 07:03

前提

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

現在は
①メニューを選択

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

③連絡先などを入力

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

実現したいこと

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

該当のソースコード

全体(一部抜粋)

PHP

<?php $files = getAllFile( $shop_id ); ?> <main> <form method="POST" action="../common/3.0.1/check.php"> <!-- ↓↓スタッフ選択↓↓ --> <section class="area staff cf"> <div class="title"> <h3><span>Step1</span>スタッフを選ぶ</h3> </div> <div class="contentWrap"> <div class="staffitem"> <?php foreach($files as $file):?> <ul class="radio-select"> <li> <input type="radio" id="radio-01" value="<?php echo $file['image_id']?>" name="staff"> <label for="radio-01"><?php echo $file['staff_name'];?></label> </li> </ul> <?php endforeach;?> </div> </div> </section> <!-- ↑↑スタッフ選択↑↑ --> <!-- ↓↓料金選択↓↓ --> <section class="area rate-plan cf"> <div class="title"> <h3><span>Step2</span>料金を選ぶ</h3> </div> <div class="contentWrap"> <table> <tbody> <!--料金<tr>開始--> <?php for ( $i = 0; $i < count( $arry ); $i++ ) { $menuName = $arry[ $i ][ 'menuName' ]; $menuUrl = $arry[ $i ][ 'menuUrl' ]; ?> <tr> <th scope="row" class="cf"><img src="../../img/photo/common<?php echo $menuUrl; ?>" alt=""/><?php echo $menuName; ?></th> <?php for ( $j = 0; $j < count( $arry[ $i ][ 'menuContents' ] ); $j++ ) { $send = $arry[ $i ][ 'menuContents' ][ $j ][ 'send' ]; $id = $arry[ $i ][ 'menuContents' ][ $j ][ 'ID' ]; $text = $arry[ $i ][ 'menuContents' ][ $j ][ 'text' ]; $time = $arry[ $i ][ 'menuContents' ][ $j ][ 'time' ]; ?> <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";?>/> <label for="radio<?php echo $id;?>" class="radio"><?php echo $text; ?></label></td> <?php }?> </tr> <?php }?> <!--料金<tr>終了--> </tbody> </table> <p class="note"><?php echo $menuNote; ?></p> </div> </section> <!-- ↑↑料金選択↑↑ --> <!-- ↓↓日時選択↓↓--> <section class="area dayTime cf"> <div class="title"> <h3><span>Step3</span>日時を選ぶ</h3> </div> <div class="contentWrap"> <div class="dayForm"> <table> <th class="no">時間</th> <th> <?php echo $todayFmt1; ?><?php echo $week[ $todayWeek ];?><br> <?php if ( in_array( $week[ $todayWeek ], $closed ) ) { echo "<span>定休日</span>"; } elseif ( in_array( $today, $closedDay ) ) { echo "<span>休業日</span>"; } else { echo "&nbsp;"; } ?></th> <th> <?php echo $tomorrowFmt1; ?><?php echo $week[ $tomorrowWeek ];?><br> <?php if ( in_array( $week[ $tomorrowWeek ], $closed ) ) { echo "<span>定休日</span>"; } elseif ( in_array( $tomorrow, $closedDay ) ) { echo "<span>休業日</span>"; } else { echo "&nbsp;"; } ?></th> <th> <?php echo $inTwoDaysFmt1; ?><?php echo $week[ $inTwoDaysWeek ];?><br> <?php if ( in_array( $week[ $inTwoDaysWeek ], $closed ) ) { echo "<span>【定休日】</span>"; } elseif ( in_array( $inTwoDays, $closedDay ) ) { echo "<span>休業日</span>"; } else { echo "&nbsp;"; } ?></th> <?php foreach ( $daterange as $date ) { $time = $date->format( "H:i:s" ); $timeMin = $date->format( "H:i" ); //日時(今日) $variable = $today . ' ' . $time; $endTime = date( "H:i:s", strtotime( $time . "+15 minute" ) ); $variableEnd = $today . ' ' . $endTime; //echo "今日".$variable."/".$endTime."/".$variableEnd; //日時(明日) $variable2 = $tomorrow . ' ' . $time; $endTime2 = date( "H:i:s", strtotime( $time . "+15 minute" ) ); $variableEnd2 = $tomorrow . ' ' . $endTime2; //echo "明日".$variable2."/".$endTime2."/".$variableEnd2; //日時(明後日) $variable3 = $inTwoDays . ' ' . $time; $endTime3 = date( "H:i:s", strtotime( $time . "+15 minute" ) ); $variableEnd3 = $inTwoDays . ' ' . $endTime3; //echo "明後日".$variable3."/".$endTime3."/".$variableEnd3; ?> <tr class='day_table'> <td class="time"><?php echo $timeMin; ?></td> <!--今日--> <td><input type='radio' name='day' id='<?php echo $variable; ?>' value='<?php echo $variable; ?>' <?php //データーベースから呼び出す $sql = "SELECT count(*) FROM customer3 WHERE shop_id = ".$shop_id." AND reserve_day = '".$today."' AND (start_time < '".$variableEnd."' AND end_time >= '".$variable."')"; $stmt = $dbh->query($sql); $num = $stmt->fetchColumn(); if ( in_array( $week[ $todayWeek ], $closed ) || in_array( $today, $closedDay )) { echo 'disabled'; }elseif ( in_array( $today." ".$timeMin, (array)$breakTime ) ) { echo 'disabled'; }elseif ( strtotime( date( 'H:i' ) ) > strtotime( $time ) ) { echo 'disabled'; }elseif($time <= $HalfAnHour ){ echo 'disabled'; }elseif($num >= $reservFrame){ echo 'disabled class="first-disabled"'; } ?>> <label for='<?php echo $variable;?>'> <?php if ( in_array( $week[ $todayWeek ], $closed ) || in_array( $today, $closedDay ) ) { echo "<i class='fas fa-minus'></i>"; } elseif ( strtotime( date( 'H:i' ) ) > strtotime( $timeMin ) ) { echo "<i class='fas fa-minus'></i>"; } elseif ( in_array( $today . " " . $timeMin, ( array )$breakTime ) ) { echo "<i class='fas fa-minus'></i>"; } elseif ( $num >= $reservFrame ) { /*echo "予約済";*/ echo "<span class='mark'>×</span>"; //× } elseif ( $time <= $HalfAnHour ) { echo "TEL"; } else { echo "<span class='result1'></span>"; /*echo '<span class="mark2">●</span>';*/ } ?> </label></td> <!--明日--> <td><input type='radio' name='day' id='<?php echo $variable2; ?>' value='<?php echo $variable2; ?>' <?php //データーベースから呼び出す $sql = " SELECT count(*) FROM customer3 WHERE shop_id = ".$shop_id." AND reserve_day = '".$tomorrow."' AND (start_time <'".$variableEnd2."' AND end_time >= '".$variable2."') "; $stmt = $dbh->query($sql); $num2 = $stmt->fetchColumn(); if (in_array( $week[ $tomorrowWeek ], $closed ) || in_array( $tomorrow, $closedDay )) { echo 'disabled'; }elseif($num2 >= $reservFrame){ echo 'disabled class="first-disabled"'; }elseif ( in_array( $tomorrow." ".$timeMin, (array)$breakTime ) ) { echo 'disabled'; } ?>> <label for='<?php echo $variable2;?>'> <?php if ( in_array( $week[ $tomorrowWeek ], $closed ) || in_array( $tomorrow, $closedDay ) ) { echo "<i class='fas fa-minus'></i>"; } elseif ( $num2 >= $reservFrame ) { /*echo "予約済";*/ echo "<span class='mark'>×</span>"; //× } elseif ( in_array( $tomorrow . " " . $timeMin, ( array )$breakTime ) ) { echo "<i class='fas fa-minus'></i>"; } else { echo "<span class='result1'></span>"; /*echo '<span class="mark2">●</span>';*/ } ?> </label></td> <!--明後日--> <td><input type='radio' name='day' id='<?php echo $variable3; ?>' value='<?php echo $variable3; ?>' <?php //データーベースから呼び出す $sql = " SELECT count(*) FROM customer3 WHERE shop_id = ".$shop_id." AND reserve_day = '".$inTwoDays."' AND (start_time <'".$variableEnd3."' AND end_time >= '".$variable3."') "; $stmt = $dbh->query($sql); $num3 = $stmt->fetchColumn(); if (in_array( $week[ $inTwoDaysWeek ], $closed) || in_array( $inTwoDays, $closedDay)) { echo 'disabled'; }elseif($num3 >= $reservFrame){ echo 'disabled class="first-disabled"'; }elseif ( in_array( $inTwoDays." ".$timeMin, (array)$breakTime ) ) { echo 'disabled'; } ?>> <label for='<?php echo $variable3;?>'> <?php if ( in_array( $week[ $inTwoDaysWeek ], $closed ) || in_array( $inTwoDays, $closedDay ) ) { echo "<i class='fas fa-minus'></i>"; } elseif ( $num3 >= $reservFrame ) { /*echo "予約済";*/ echo "<span class='mark'>×</span>"; //× } elseif ( in_array( $inTwoDays . " " . $timeMin, ( array )$breakTime ) ) { echo "<i class='fas fa-minus'></i>"; } else { echo "<span class='result1'></span>"; /*echo '<span class="mark2">●</span>';*/ } ?> </label></td> </tr> <?php }?> </table> </div> </div> </section> <!-- ↑↑日時選択↑↑--> <!-- ↓↓送信ボタン↓↓--> <div class="cp_submit"> <input type="hidden" name="shop_id" value="<?php echo $shop_id; ?>"> <input type="hidden" name="shop_name" value="<?php echo $shop_name; ?>"> <input type="hidden" name="shop_url" value="<?php echo $shop_url; ?>"> <input type="hidden" name="shop_tel" value="<?php echo $shop_tel; ?>"> <input type="hidden" name="shop_mail" value="<?php echo $shop_mail; ?>"> <input type="hidden" name="temporary" value="<?php echo $temporary; ?>"> <input type="hidden" name="bg" value="<?php echo $bg; ?>"> <input type="submit" value="確認画面へ" class="submit_a1"/> </div> <!-- ↑↑送信ボタン↑↑--> </form>

試したこと

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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2022/09/22 06:26

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

2022/09/22 07:04

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

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

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で作成されています。