• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:checkboxクリック時、SQLを実行し、ボタンの有効・無効を判定する方法について)

checkboxクリック時、SQLを実行し、ボタンの有効・無効を判定する方法について

このQ&Aのポイント
  • checkboxクリック時にSQLを実行し、ボタンの有効・無効を判定する方法について相談です。
  • 現在はデータベースの最終行の値を使用してボタンの有効・無効を決定していますが、3つのcheckboxがある場合にはそれぞれの行の値を参照したいと考えています。
  • 質問者はSQLを予め実行せず、checkboxクリック時に実行したいと思っていますが、具体的な方法がわからないとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

補足になりますが >多分phpで出来そうかなという気はするのですが。 SQLのインタラクティブな発行はajax以外はよほどのことがない限り 無理だと考えた方がよいです。 ですのでajaxを想定していないのであれば、本件は仕様のままでは 実現は不可能だとおもってください。 もちろん、ページ全体を再読み込みしていいなら話は別ですが。 >whereで取得する方法などを考えています。 whereで結果を限定するのは賢明です ただし結果が常に1つしかないのであればwhileでまわす必要は ないですね まだフローの練りこみがかなり足りないと思います。 もう少し設計段階できちんとしないと、運用で苦労しますよ

iroha_168
質問者

お礼

ありがとうございます。 SQLのインタラクティブな発行はajax以外無理と考えた方が良いのですね。 勉強になりました。 ちなみにajax以外無理と思われる理由をご存知でしたら、ご教授いただいてもよろしいでしょうか? その点について人に説明する必要があるかもしれないので。 私のほうでもいただいたアドバイス内容を元に検索してみようとは思いますが。 それと > もちろん、ページ全体を再読み込みしていいなら話は別ですが。 ページ全体の再読込は仕様上大丈夫です。 特に再読込不可という制約はありません。 ajax化に伴う予算増加は認められなさそうという制約はありますが。。。 後、確かにwhileは必要ないですね。 結果は常に1つになります。 何となく今お教えいただいた方法で頭の中で処理の流れを考えてみました。 <?php if (チェックボックスから何らかの値を渡されたら) { ・phpでSQLを発行し、ボタンのOFF/ONを設定する。 (もしかしたら常にSQLを発行し、値が渡されていない場合はkey=0の値を見に行き、 key=0にはボタンがすべてONになるような値を設定しておけばよいのかもしれません。) } ?> <html> ・チェックボックス(ここをクリック時、何らかの値を渡し、リロードする) ・ボタン(チェックボックスクリックに伴うSQLの結果を元にOFF/ONを設定) </html> 後、今のソースでは再読み込み時にチェックボックスのOFF/ONを保持する仕組みがない為、 それを実装すれば、ここの部分については一応意図した動作になるのかなと思いました。 そのため、上記のような感じで一度組んでみて試してみようと思います。

iroha_168
質問者

補足

いつもお世話になっております。 その後ご教示いただいた内容を元に実装してみた所、phpとjavascriptを用いページ全体を再読み込みさせることで希望の動作となりました。 まだまだ改善の余地があるソースですが、当初の目的は達成できましたので質問を締め切らさせていただきたいと思います。 どうもありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>1. SQLは予め実行するのではなく、checkboxクリック時に実行したい。 ajaxを使えばできないことはない。 ただしそこまでするほどのこともないような気がします。 >2. checkboxが3つあった場合、1つめのcheckboxクリック時はテーブルの1行目、 >2つめのcheckboxクリック時はテーブルの2行目の値を見に行きたい 現状はみればわかるが、3回ループするなかで毎回$ans1~3が上書きされてる。 配列をつかってうければ処理できるんじゃないですかね?

iroha_168
質問者

お礼

ありがとうございます。 今の所、ajaxを使う事は想定しておりません。 多分phpで出来そうかなという気はするのですが。 それと2については下記のようにテーブルに主キーを設定し、checkboxクリック時にcheckboxの引数に主キーの値を入れておき、whereで取得する方法などを考えています。 ------------------- |   |key|field1|field2|field3| ------------------- |1行目| 1 | 1  | 0 | 1  | ------------------- |2行目| 2 | 0  | 1 | 1  | ------------------- |3行目| 3 | 1  | 0 | 0  | ------------------- もっとも、それを行うにはcheckboxクリック時にSQLを発行する必要があるとは思いますが。 この点については引き続き調べてみようと思います。

関連するQ&A