• 締切済み

selectの要素を、各自submitにしたい!

毎度、お世話になります。 http://www.komonet.ne.jp/script.htm KOMONETさんの「高機能ショッピングカート」を改造しています。 このショッピングカートのページトップに、各カテゴリ別に移動する セレクト要素がありますが、<select>を使わずに、要素を直接 submitさせるボタンにしたいのです。 【カテゴリ1】|【カテゴリ2】|【カテゴリ3】|【カテゴリ4】 現在のコードは下記のようになっています。 (<form....></form>、echo,\,",;等は省いてあります) ($kindは、PHPコード内にカテゴリを選択する処理文があります) //商品のカテゴリ $category[0] = "選択"; $category[1] = "カテゴリ1"; $category[2] = "カテゴリ2"; $category[3] = "カテゴリ3"; $category[4] = "カテゴリ4"; $cat_num = count($category); +---------------------------------------------- <select name='kind'> for($i=0;$i<$cat_num;$i++){ <option value=". $i . (($i == $_POST['kind']) ? ' selected' : '') . "> " . $category[$i] . "</option> } </select>\n"; +----------------- これを submit にすると、 for($i=0;$i<$cat_num;$i++){ <input type='submit' name='kind' value=". $i . (($i == $_POST['kind']) ? ' ' : '') . "> } となりますが、その時【 】ボタンの中身は、【0】【1】【2】【3】【4】 といった、数字になります。(これは当然なんですが)、それでこれを、 なんとか、【カテゴリ1】|【カテゴリ2】|【カテゴリ3】|【カテゴリ4】といった submit ボタンに出来ないものでしょうか? 教えて下さい。 どうか、よろしくお願いします。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 この複数個のボタン(サブミット)は同じフォーム(要は同じPHP)に対して送信されるのだろうか? その場合は、valueプロパティではなく、nameプロパティに何かIDのようなものを含め、受け取りPHP側ではnameの方を見て分岐するようにすれば良いだろう。 "<input type=\"submit\" name=\"kind" . $i . "\" value=\"カテゴリ" . $i . "\">" 受け取り側ではisset($_POST['kind' . $i])のループで「どれが押されたか」を調べる事ができる。

waterclock
質問者

お礼

どうも親切にありがとうございます。 ちょっとやってみたけど、難しいーー;) それで、自分にわかる方法で取りあえず、解決しました。 +----------------------------------------- for($i=0;$i<$cat_num;$i++){ //echoは省略してます "<form action=\"$PHP_SELF\" method='post' enctype='application/x-www-form-urlencoded'>"; "<input type='hidden' name='kind' value='$i'>"; "<input type='submit' value='$category[$i]'>"; "</form>"; } +----------------------------------------- こんな感じしか思いつきませんでした。ーー;) もっといい方法があれば、教えて下さい。お願いします。

関連するQ&A

専門家に質問してみよう