電子書籍の厳選無料作品が豊富!

PHPかHTML どっちに質問するか迷いましたが こちらにしました。 宜しくお願いします。

質問の内容は
InternetExplorer 6.0 SP1(IE) と Firefox 1.0 で動作の異なる所があるので困っています。
私のミスなのか 仕様なのかが知りたいです。

問題のソースです。

<form action="hoge" method="post">
<button type="submit" name="name" value="Satou">Satou</button>
<button type="submit" name="name" value="Katou">Katou</button>
</form>

をPHPで値を貰った結果
Firefoxの場合
Satou が押された時 name の内容は Satou
Katou が押された時 name の内容は Katou

IEの場合
Satou が押された時 name の内容は Katou
Katou が押された時 name の内容は Katou

私の期待している 挙動は Firefox の方なんですが
IE では違う動きを見せます
何か気づく点がありましたら アドバイス宜しくお願いします。

A 回答 (2件)

それぞれの名前を別にする必要があると思います。


例えばDOMの様にフォーム(のボタンに)アクセスする場合、
form名.ボタン名の様にアクセスすると思うのですが、
これが同じ名前であると、一意に決定できません。
チェックボックス等の配列として動作することが決まっているようなものはいいですが、
普通ボタンは、配列になると想定されていないと思います。
なので、普通名前は識別可能なように一意なものを付けるべきだと思いますが。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

そうですね そう考えると Firefox が親切心で(余計な)通してくれたんですかね

お礼日時:2004/11/09 06:02

NO.1さんのおっしゃる通りです。

name=の名前は、違うものにする必要があります。具体的には、

<form action="hoge" method="post">
<button type="submit" name="name1" value="Satou">Satou</button>
<button type="submit" name="name2" value="Katou">Katou</button>
</form>

とすれば動くと思います。もし、項目がたくさんあって(40とか50とか)いちいち名前を付けるのが大変な場合は、このフォーム自体をPHPで生成してください。

この回答への補足

すいません 上の書き間違えました。

<form action="hoge" method="post">
<input type="submit" name="name" value="Satou">
<input type="submit" name="name" value="Katou">
</form>

補足日時:2004/11/09 06:08
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。

betagammaさんのやり方で上手く動作することを確認いたしました。
ただ、、、変数名を一緒にするのを諦めきれずこんなの書いてみました

<form action="hoge" method="post">
<input type="submit" name="name" value="Satou">
<button type="submit" name="name" value="Katou">
</form>

この書方だと 私の納得いく動作をしてくれました。
IE,Firefox 以外の環境で試していないので たまたま動いてしまったのかもしれません
難点として ボタン名と変数の値が別々に出来ないことです。

お礼日時:2004/11/09 06:07

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