一回も披露したことのない豆知識

HTML、PHP、JavaScript等でサイトを作っているのですが・・・。

【実現出来ている例】
<form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">
 <input type="submit" value="送信">
</form>
 submitボタンを一つ置いて、それがクリックされた場合に
formの内容をPOSTで送信する。

【実現したい例】
<form name="form1 method="post">
 <a href="Next.php" onClick="???">???</a>
</form>
 formの中のリンクをクリックされた場合に、formの内容を
POSTで送信したいのですが、その実現方法がわかりません。
GETで送るという手もあり得ますが、今回はどうしてもPOST
したいのですが。

A 回答 (2件)

<form name="form1" method="post" action="Next.php">


<a href="#" onClick="document.form1.submit();">???</a>
</form>

onclick内の対象がform1としてあてているので、
アンカータグは別にform内に記述しなくても大丈夫です

form内にhidden等でnameとvalueを持ったパラメータがあればそれも送られます

アンカータグから動的にvalueを変更したい場合は、
document.form1.hogename.value = 'hoge';
等をsubmit()の前に行えば可能です

ただしform内に
<input type="hidden" name="hogename" value="">
を記述する等、変更先パラメータの元を用意する必要がありますのでご注意下さい

この回答への補足

ご回答ありがとうございます。

何となくイメージがつかめてきましたので、
現在実験中です。

そこで、ひとつ追加質問させて下さい。

<a href="#"~

このシャープ記号は、文字通り"#"なのでしょうか?
それとも何か別の物を表しているのでしょうか。

補足日時:2007/02/28 12:53
    • good
    • 1

> <a href="#"~


>
> このシャープ記号は、文字通り"#"なのでしょうか?
> それとも何か別の物を表しているのでしょうか。

文字通りです
アンカータグ(<a>)はhref属性があることで文字色が変わりアンダーラインが付き、
カーソルがポインターになるという動作・レンダリングが適用されます
それを適用させるために # を入れてあげています

href属性のシャープそのものはページ内移動として動作し、
また、href属性がなくてもonclick自体は動作します


他のやり方では

<a href="javascript:document.form1.submit();">???</a>

でhref属性に直接javascriptを入れたり、

<a onClick="document.form1.submit();" style="text-decoration:underline;color:#00f;cursor:pointer;">???</a>

として、href属性のないものにstyleを適用させて、
アンカーっぽく見せる等、やり方は多様です

href属性へ直にjavascriptを入れるのは、
リンク部分にカーソルを合わせた際、
ステータスバーにそのままjsの処理が表示されます

href="#" はonclickを使用する際に前途動作・レンダリングを適用させ、
尚且つステータスバーに処理を表示させないという一般的な方法です

href属性に直js or onclick + href属性#、ここは好みかなと思います
(style設定でする方は恐らく少数派でしょう)
    • good
    • 3
この回答へのお礼

>href="#" はonclickを使用する際に前途動作・レンダリングを適用させ、
尚且つステータスバーに処理を表示させないという一般的な方法です

 ご回答ありがとうございました。
 おかげさまで実現する事が出来ました。

お礼日時:2007/03/05 22:30

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

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


おすすめ情報