• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:まったく同じ<select>フォームの値を連動させたい)

まったく同じ<select>フォームの値を連動させたい

このQ&Aのポイント
  • ptpでまったく同じselectフォームの値を常に連動させる方法について紹介します。
  • ただし、form内に複数のSubmitボタンがある場合は注意が必要です。
  • PHPを使用して、連動するselectフォームを作成することができます。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>まったく同じ<select>フォームの値を連動させたい 同じものをわざわざ複数個作って連動(?)させることの意味がわかりませんが… <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><title>test</title> <script type="text/javascript"> <!-- function hoge(e) { var i=0, s, sel = e.form.getElementsByTagName("select"); while (s=sel[i++]) if (s.name == e.name && s != e) s.selectedIndex = e.selectedIndex; } //--> </script> </head> <body> <form> <select name='sorttype' onchange="hoge(this)"> <option value='0'>氏名</option> <option value='1'>年齢</option> <option value='2'>電話番号</option> </select> <br>ああああ<br> いいいい<br> うううう<br> <select name='sorttype' onchange="hoge(this)"> <option value='0'>氏名</option> <option value='1'>年齢</option> <option value='2'>電話番号</option> </select> <br>かかかか<br> きききき<br> くくくく<br> <select name='sorttype' onchange="hoge(this)"> <option value='0'>氏名</option> <option value='1'>年齢</option> <option value='2'>電話番号</option> </select> </form> </body> </html>

litton101
質問者

お礼

fujillinさん、ご回答ありがとうございました。 おかげさまで、ばっちり本番環境に組み込むことができました。 > 同じものをわざわざ複数個作って連動(?)させることの意味がわかりませんが… 縦にながーいテーブルの一番上と一番下に登録ボタンや、ソートキーを指定するselectフォームを設けてPOSTさせたところ、上のフォームでソートキーを選択指定しても、下のキーの値が上書きPOSTされてしまいました。なので、急しのぎで連動させる必要を感じたしだいです。 とりあえず一件落着です。ありがとうございました。

その他の回答 (1)

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

JavaScriptのカテゴリですから、スクリプトについてのヒントを書くことにします。 ボタンを複数設置したいのなら、送信ボタンではなく普通のボタンを置きます。 <input type='button' name='exec' value='保存'> しかし、これだけでは機能しないので、スクリプトを組み込みます。 <input type='button' name='exec' value='保存' onClick='スクリプトを記述'> どの値をどう連動させるのか判らないので、ここまでにしておきますが、JavaScriptでフォームの値を変更することは自由にできますので、ボタンに連動してフォームの値をセットし直すことは可能です。

参考URL:
http://www.shurey.com/Soft/JS/form/index.html
litton101
質問者

お礼

nine999さん、ヒントありがとうございました。 > ボタンを複数設置したいのなら、送信ボタンではなく普通のボタンを置きます そんなことができるのですか? まったく知りませんでした。 javascriptが書ければ、いろいろ可能性は広がりそうですね。 研究してみます。 ありがとうございました。

専門家に質問してみよう