dポイントプレゼントキャンペーン実施中!

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

ptpで下記のようなコードがあり、まったく同じselectフォームの値を常に連動させるにはどうしたらよいでしょうか。

本当は、ひとつのform内に二つのSubmitボタンがあってはならないような話を聞いたことがありますが・・・

<html>
<head>
</head>
<body>
<?php
$btn = "<select name='sorttype'>";
$btn .= "<option value='0'>氏名</option>";
$btn .= "<option value='1'>年齢</option>";
$btn .= "<option value='2'>電話番号</option>";
$btn .= "</select>";
$btn .= "<input type='submit' name='exec' value='保存'>";
?>
<form>
<?= $btn ?>
ああああ<br>
いいいい<br>
うううう<br>
<?= $btn ?>
</form>
</body>
</html>

A 回答 (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>
    • good
    • 0
この回答へのお礼

fujillinさん、ご回答ありがとうございました。
おかげさまで、ばっちり本番環境に組み込むことができました。

> 同じものをわざわざ複数個作って連動(?)させることの意味がわかりませんが…

縦にながーいテーブルの一番上と一番下に登録ボタンや、ソートキーを指定するselectフォームを設けてPOSTさせたところ、上のフォームでソートキーを選択指定しても、下のキーの値が上書きPOSTされてしまいました。なので、急しのぎで連動させる必要を感じたしだいです。

とりあえず一件落着です。ありがとうございました。

お礼日時:2010/05/18 16:40

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
    • good
    • 0
この回答へのお礼

nine999さん、ヒントありがとうございました。

> ボタンを複数設置したいのなら、送信ボタンではなく普通のボタンを置きます

そんなことができるのですか?
まったく知りませんでした。

javascriptが書ければ、いろいろ可能性は広がりそうですね。
研究してみます。
ありがとうございました。

お礼日時:2010/05/18 16:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!