POST送信でチェックボックスの値を取得し、果物テーブルから果物名を表示する方法

このQ&Aのポイント
  • チェックボックス(複数選択可)の値をPOST送信し、果物テーブルから得られた果物コードをSELECT文により、果物名に変換して表示します。
  • POST送信されたチェックボックスの値を取得し、果物テーブルのコードと照合して、選択された果物の名前を表示する方法を学びたいです。
  • チェックボックスで選択された果物のコードをPOSTで送信し、SELECT文を使用して、果物テーブルから果物名を取得して表示したいです。
回答を見る
  • ベストアンサー

チェックボックス(複数選択可)の値をPOST送信し、

果物テーブルの中身を入力フォームにて、チェックボックスにより選択 得られた果物コードをSELECT文により、果物名に変換して表示 保存時は好きな果物1、好きな果物2、好きな果物3、、カラムにコードを保存。 例)あなたの好きな果物は? りんご  みかん  いちご  メロン (チェックボックスにより選択) 果物テーブル: 1 りんご 2 みかん 3 いちご 4 メロン 入力フォームよりPOSTにて選択された果物のコードを送信 入力確認画面にて得られたコードより果物名に変換 選択されたコードを保存 上記のようなイメージです。 例えば、りんご、みかん、いちごを選択された場合、(1,2,3)が得られ、これを分解してSELECTする方法が分かりません。 すなわち配列の操作になるかと思われます。 (1,2,3)コードは取得出来ています。 以上、ご教授頂けたら助かります。

  • PHP
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

DBからデータを取り出した時に果物のデータが例の(1,2,3)という 感じになっているということですかね。 それならデータの分解は $kudamono = explode(",",$row[果物のデータ]); で出来ると思いますよ。 データの取り出しは $kudamono[0] = 1 $kudamono[1] = 2 $kudamono[2] = 3 という風になってます。 これを取り出したデータ分 forでループしてやれば良いのでは。 更に文字列に戻してどうにかしたいなら array PHP とかで検索して処理にあうものを探して試すと宜しいかと。

annika54
質問者

お礼

ありがとうございました。 explodeにて値は取得できました。 ループ処理等、実践してみます。

その他の回答 (1)

  • 11spec0
  • ベストアンサー率83% (10/12)
回答No.1

ちょっとわかりずらいので、途中まで書いたロジックを載せてもらえないでしょうか?

関連するQ&A

  • リストボックスの複数選択について

    ACCESS2003を使っています。 入力用フォームにリストボックスを作って 複数選択するようプロパティで変更しました。 この情報をテーブル上に反映させることができません。 どうしたらいいのかお教えください。 具体的には 入力用フォームに りんご(*) みかん かき(*) スイカ   (*)印は黒反転 この状態で入力するとテーブル上に りんご かき というように表示するようにしたいのです。

  • ラジオボタンの選択によってチェックボックスのチェックできる個数を制限し

    ラジオボタンの選択によってチェックボックスのチェックできる個数を制限したい。 他の方の質問を見たのですがマッチする質問がなかったのでご質問させていただきます。 現在申し込みフォームを作成しているのですが、要件としては、 ラジオボタンの選択によってチェックボックスのチェックできる個数を制限したい。 と思っています。javascriptで実現できると思うのですがなかなかできずに困っております。 <ラジオボタン> ○りんご ○みかん ○めろん ○すいか <チェックボックス> □青森産 □愛媛産 □千葉産 □神奈川産 りんごを選んだ人は、チェックボックスで1つしか選択できないようにしたい。 みかんを選んだ人は、チェックボックスで2つしか選択できないようにしたい。 めろんを選んだ人は、チェックボックスで3つしか選択できないようにしたい。 すいかを選んだ人は、チェックボックスで4つ選択できるようにしたい。 可能であれば制限を超えた場合はアラートを上げたいと思います。 2つまでしか選べませんというように。 大変申し訳ありませんが、参考になるページやソースなどを教えていただければと 思います。よろしくお願い致します。

  • チェックボックス/ラジオボタン

    CGIを勉強中です。 まだ無料で配布されているCGIをカスタムするくらいしかできないレベルです。 今度やりたいのが、チェックボックス/ラジオボタンどじらでもいいのですが、 こちらに送られてくるメールフォームで選択されているものは仮に「Y」 選択されていないものは「N」という形で受け取りたい場合はどのように したらできるのでしょうか? よろしくお願いします。 <input type="checkbox" name="みかん" value="みかん" />みかん <input type="checkbox" name="りんご" value="りんご" />りんご <input type="checkbox" name="メロン" value="メロン" />メロン <input type="radio" name="みかん" value="みかん">みかん  <input type="radio" name="りんご" value="りんご">りんご

    • ベストアンサー
    • CGI
  • [Access2013]リストボックスの値指定

    以下の様な事をしたいと思っていますが上手く行きません。 上手くいく方法はありますでしょうか? テーブル1 id 名称 →列名 1 みかん 2 りんご 30 トマト 上記の様なテーブルがありそれをフォーム上に配置したリストボックス(複数選択可)の値集合ソースにしています。 リストボックスから入力した値は、みかんのみを選択した場合は「1」、みかんとりんごを選択した場合は「1;2」とDBに保存しています。 (この部分は想定通りの動きをしています。) 入力用フォーム以外に、別フォームのデータシートビューで一覧表示をしています。 そこで上記リストボックス値でDBに入っている「1」や「1;2」を「みかん」や「みかん;りんご」と表示したいと思っています。 データシートビューにもリストボックスを配置し、値集合ソースは入力フォームと同じテーブル1に、コントロールソースを「1;2」が入っているフィールドにしましたが、「1」のみの場合は選択状態で表示されますが、「1;2」の場合未選択になってしまいます。 やりたいことは、ここで入力をするつもりはありませんのでただ文字列として「みかん;りんご」が出てくればいいです。 ただ、一々フォームロードなどでSQL文(+ループ処理)を書くと件数が数万件は少なくともあるのでロード時の待ちが長くなりそうです。 また、リンクテーブルマネージャで外部DBと接続しているので、テーブル定義をAccess独特のものに変更するのは難しいです。 idは自然増加に任せており桁数はまちまち、複数選択の個数も1~数十と様々です。 質問内容 ・リストボックスのコントロールソースにて複数値を指定する方法はありますか?(そもそもとして、そういうことが出来ないものなのでしょうか? また,区切りに変更、splitで配列化等はすでに行って駄目でした。) ・処理時間に影響が少ない方法で「みかん;りんご」とデータシートビューに表示する方法はありますでしょうか? ・例えばリストボックスを使用せずテキストボックス等に変更してコントロールソースでselect 名称 from テーブル1 where id in Replace("1;2",";",",")の様な事をした結果複数件出た場合は区切り文字で区切って全部出す等を可能なのでしょうか? よろしくお願いいたします。

  • チェックボックスで複数選択した値をSQLへ

    次のような入力フォームから、SQLのテーブルに登録します。 <?php function connect() { return new PDO("mysql:dbname=★★★;host=★★★","★★★","★★★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); if (@$_POST['submit']) { $hoge = $_POST['hoge']; if (!$error) { $pdo->query("INSERT INTO ★(hoge) VALUES('$hoge')"); header('Location: example.php'); exit(); } } ?> <form action="insert.php" method="post"> <input type="checkbox" name="hoge[]" value="りんご"/>りんご<br> <input type="checkbox" name="hoge[]" value="みかん" />みかん<br> <input type="checkbox" name="hoge[]" value="いちご" />いちご <input class="submit" type="submit" name="submit" value="登録"> </form> これで、例えば「りんご」と「みかん」をチェックして登録ボタンを押すと 受け取りのexample.phpにはArrayと表示され、SQLに反映されません。 よい方法があったら教えてください。

    • ベストアンサー
    • PHP
  • ACCESSでフォームの明細で他の値を参照させたい

    ACCESS2010でフォームで明細行のコンボボックスを、他のテキストボックスの値を使って 行単位で動的に変更したいのですが、どのようにしたらよろしいのでしょうか 例えば、 1行目のAのコンボボックスで「果物」を選択したら、Bのコンボボックスは「リンゴ・みかん・イチゴ」を表示させたい 2行目のAのコンボボックスで「野菜」を選択したら、Bのコンボボックスは「きゅうり・きゃべつ」を表示したい もちろん、テーブルに下記のように保存されています 【分類】|【名称】 野菜|きゅうり 野菜|きゃべつ 果物|りんご 果物|みかん 果物|イチゴ

  • チェックボックスのチェックした項目の名前を取得したいです。

    チェックボックスのチェックした項目の名前を取得したいです。 HTML+Javascript+CGIでアンケートフォームを作っています。 送信ボタンを押したときに確認画面を表示させたいのですが、チェックボックスの項目をどう扱って良いのかわかりません。 性別を選択するラジオボタンの値の取得(男をチェックしたか、女をチェックしたか)は sex = document.mailform.sex[0].checked ? document.mailform.sex[0].value : document.mailform.sex[1].value このように出来るとのことですが、チェックボックスはどうしたら良いのでしょうか? 好きな食べ物を聞くチェックボックスで、選択項目に ・リンゴ・バナナ・ミカン・イチゴ を用意し、チェックされた項目を 好きな食べ物:リンゴ イチゴ の用に出力したいと思っています。 よろしくお願いします。

  • マクロ フォームでのチェックボックスについて

    教えてください。 1)フォームでテキストボックス2つ、ボタンで新しい入力フォーム表示 2)入力フォームでチェックボックス6個、コンボボックス6個を作ります。 3)チェックボックスにチェック(1個のみ)したら、1)のフォームのテキストボックスにチェックされた、項目とコンボボックスで選択された内容が転記したい。 例)果物にチェック、コンボでブドウと選択  テキストボックス→果物 ブドウ というようにフォームに転記させたい。 以前、シートでのマクロを教えていただきましたが、フォームだと頭が混乱してしまいました。 簡単で良いので、マクロの記述を教えてください。

  • アクセス テーブル ルックアップ について

    アクセスです。[売り上げ] というテーブルで、フィールド [年月日] [果物] [個数] があって、[果物] の入力時に マスタテーブル [M果物] を ルックアップ 、 コンボボックス で選択するようにしています。すでにデータ入力してあります。ところが、[M果物] には、リンゴ、ミカン、メロン・・・・・などたくさんあるので、探して選択するのに不便になってきました。そこで、[果物]入力時に、よく売れる個数順に果物を並べ替えて、ルックアップ、コンボボックスに表示して入力を便利にしたいのですが、どのようにしたらよいのでしょうか?宜しくお願い致します。

  • プルダウンメニューに連動するチェックボックスのdisable切り換え

    こんにちわ。 表記の件ですが、プルダウンメニューに連動するチェックボックスのdisableを切り換えたいと思っているのですが、なかなか上手くいきません・・・。 例えばプルダウンメニューにおいて ・食べ物 ・生き物 ・果物 ・穀物 というようなメニューがあり、さらにチェックボックスとして ・お米 ・りんご ・さかな ・みかん というチェックボックスがあるとします。 この場合、[食べ物]を選択すると全てが選択できるようになり、[果物]を選択すると[りんご]と[みかん]以外は無効(チェックボックスの選択ができない状態)となるスクリプトを作成したいということです。 もし、先行していずれかのチェックボックスが有効になっていて、プルダウンメニューを切り換えた場合はアラートと同時にチェックボックスをリセットするようできると尚素敵です。 皆様のお知恵を拝借できればと思います。 何卒お力添えいただければ幸いです。

専門家に質問してみよう