ハマっている「お菓子」を教えて!

submitボタンを複数設置し,全てのラベルに「これを修正する」と表示したいのですが,
下記のように押下されたsubmitボタン別に,POSTする値をそれぞれ1,2,3と分けたいです.
(page.phpは,$_POST["PageNumber"]として1か2か3を受け取る)

ですが,value属性の値がボタンのラベルとしてボタン表面に記されてしまい,困っています.
何とかならないでしょうか?


<form method="post" action="page.php">
<input type="submit" name="PageNumber" value="1"></td></tr>
<input type="submit" name="PageNumber" value="2"></td></tr>
<input type="submit" name="PageNumber" value="3"></td></tr>
</form>

A 回答 (4件)

それぞれのボタンを別のフォームとしてよいのでしたら、


それぞれにtype=hiddenで値を持たせればよろしいでしょう。

<form action="a.php" method="post" name="form1">
<input type="hidden" name="PageNumber" value="1" />
<input type="submit" value="これを修正する" />
</form>
<form ・・・以下必要なだけ>
    • good
    • 1
この回答へのお礼

meenieさん,たびたびありがとうございました.

まさに目からウロコです.
おかげさまで目的を達成できました.
ありがとうございます.

お礼日時:2007/02/02 17:21

訂正です。

submitを押した上に、javascriptでもsubmit()してしまっていました。

スクリプトを以下のように一行削除してください。
<script type="text/javascript">
function sbmt(aert) {
document.form1.hid1.value = aert;
}
    • good
    • 0

javascriptが使える環境でしたら、下のような方法があります。


filename:button.php
<html>
<head><title>test</title>
<script type="text/javascript">
function sbmt(aert) {
document.form1.hid1.value = aert;
document.form1.submit();
}
</script>
</head>
<body>
<form action="button.php" method="post" name="form1">
<input type="text" name="res" value="<?php print( $_POST['hid1'] ) ?>" />
<input type="hidden" name="hid1" value="" />
<input type="submit" name="sub1" value="これを修正" onClick="sbmt('sub1')" />
<input type="submit" name="sub2" value="これを修正" onClick="sbmt('sub2')" />
</form>
</body>
</html>

いかがでしょうか。
    • good
    • 0
この回答へのお礼

meenieさん,jsによる解法ありがとうございました.
(#3でご訂正いただいた分については承知いたいました)

ものすごい方法があるのですね.
本件では,できればjsよりサーバー側で解決できたらと思っていましたが,
今後の選択肢の一つとして非常に魅力的です.

ありがとうございました.

お礼日時:2007/02/02 14:13

formタグを3つに分離しましょう。



<form method="post" action="page.php?PageNumber=1">
<input type="submit" value="これを修正する"></td></tr>
</form>
<form method="post" action="page.php?PageNumber=2">
<input type="submit" value="これを修正する"></td></tr>
</form>
<form method="post" action="page.php?PageNumber=3">
<input type="submit" value="これを修正する"></td></tr>
</form>
    • good
    • 0
この回答へのお礼

chie65536さん,素晴らしい解決策をご提示いただきありがとうございます.

>formタグを3つに分離しましょう。
><form method="post" action="page.php?PageNumber=1">
><input type="submit" value="これを修正する"></td></tr>

目からウロコです.
ただ page.php にて,
echo $_POST["PageNumber"];
とすると,「これを修正する」が渡ってきています.

POSTとGETの関係もよくわかっていないですが,見よう見まねで
<form method="post" action="page.php?PageNumber=1">
このmethodを,POSTからGETに変更し,
echo $_GET["PageNumber"];
としたら「1」が渡ってくるのですが,仮にもしPOSTで解決したいと
したら,どうすえばいいでしょうか?

どなたか,もしよろしければご教示いただけると幸いです.

お礼日時:2007/02/02 14:09

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報