
POSTで
<a href=sample.cgi?md=aa&tx=zz~>hoge</a>
<a href=sample.cgi?md=bb&tx=yy~>hoge2</a>
<a href=sample.cgi?md=cc&tx=xx~>hoge3</a>
<a href=sample.cgi?md=dd&tx=ww~>hoge4</a>
を送る方法でjavascriptとの組み合わせで出来るのかな?
と思い検索したら
<form action="./sample.cgi" method="POST" name="post">
<input type="hidden" name="md" value="aa">
<input type="hidden" name="tx" value="zz">
:
<a href='#' onClick="document.post.submit();return false">hoge</a>
<form action="./sample.cgi" method="POST" name="post2">
<input type="hidden" name="md" value="bb">
<input type="hidden" name="tx" value="yy">
:
<a href='#' onClick="document.post2.submit();return false">hoge2</a>
このような手法が見つかりました
これだと行数が多くなり、なんとなくすっきりしません
どなたかいい解決方法を教えてください
よろしくお願いします
No.3ベストアンサー
- 回答日時:
JavaScriptオフの場合を考えないなら、このように書けます。
<!-- フォーム -->
<form action="sample.cgi" method="post" name="form1">
<input type="hidden" name="md">
<input type="hidden" name="tx">
</form>
<!-- スクリプト -->
<script type="text/javascript"><!--
function Post(md, tx) {
form1.md.value = md;
form1.tx.value = tx;
form1.submit();
}
//--></script>
<!-- リンク -->
<a href="javascript:Post('aa', 'zz')">hoge</a>
<a href="javascript:Post('bb', 'yy')">hoge2</a>
回答ありがとうございます
これは良いですね、すっきりしてますし
編集も楽そうです
JavaScriptオフの場合を考えていないので
(自分だけ使う予定なので)
まったく問題ありません
# JavaScriptを勉強しなければ・・・・・
No.2
- 回答日時:
単にテキストリンクに見せかけたいだけであれば、
画像のようなテキスト
※テキストが記述された画像
を使うという手段があります。
これなら、
<FORM method="POST">
<INPUT type="image" src="text.gif" alt="リンク風Submit">
</FORM>
という感じでOKです。
JavaScript未対応のブラウザへの配慮もいりません。
#ちょくちょく仕事で使ってます、この技(^^;
回答ありがとうございます
JavaScript未対応を気にせずやれる方法ですね
ただ、テキストリンクに見せかけたい
・・・ってわけではないので(^^;
今後の参考にさせていただきます
No.1
- 回答日時:
FORMは1つにして、リンクの onClick で各 hidden の value を埋めればよいと思います。
# フォーム部
<form action="sample.cgi" method="post" name="post">
<input type="hidden" name="md">
<input type="hidden" name="tx">
:
</form>
# リンク部
<a href="sample.cgi?md=aa&tx=zz~" onClick="return myPost(this)">hoge</a>
<a href="sample.cgi?md=bb&tx=yy~" onClick="return myPost(this)">hoge2</a>
<a href="sample.cgi?md=cc&tx=xx~" onClick="return myPost(this)">hoge3</a>
<a href="sample.cgi?md=dd&tx=ww~" onClick="return myPost(this)">hoge4</a>
# 送信スクリプト
<script type="text/javascript"><!--
function myPost(a) {
var query = a.href.substring(a.href.indexOf("?")+1);
while (query) {
var p1 = query.indexOf("=");
var p2 = query.indexOf("&");
if (p2 == -1) p2 = query.length;
var key = query.substring(0, p1);
var val = query.substring(p1+1, p2);
document.post[key].value = val;
query = query.substring(p2+1);
}
document.post.submit();
return false;
}
//--></script>
※全角スペースを使っているので、コピーする際は半角スペースかタブに変換してください。
ちなみにこの方法だと、JavaScript がオフの環境では GET で(通常のリンクとして)飛びます。
JavaScript オフの人には実行させたくない場合、リンク内の
return myPost(this)
の this の部分を "md=aa&tx=zz~" のようにクエリ文字列にし、myPost 関数の方は
function myPost(query) {
として
var query = a.href.substring(a.href.indexOf("?")+1);
の部分を削除してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<a href="#" …>の意味を教えて...
-
html メールリンクにて自動ファ...
-
ウインドウの後ろに隠れている...
-
bodyにidをつける理由は何ですか?
-
JavaScriptでiframeの内容を「...
-
selectタグで日付を生成
-
テキストボックス内にハイパー...
-
innerHTMLが動作しない。
-
別ファイルのfunctionの読み込み方
-
¥マークの検索について
-
javascriptでalertの文字列をコ...
-
マウスクリックした地点のテキ...
-
window.openでフルスクリーン表...
-
JavaScript 配列とiframe
-
ボタンのID名を取得するには?
-
window.open でExcelファイルを...
-
不思議な小窓を出現させるスプ...
-
ひとつの外部ファイルに複数の...
-
キーを押している間の時間を計...
-
JavaScriptからVBScriptの呼び...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a href="#" …>の意味を教えて...
-
html メールリンクにて自動ファ...
-
HTMLソースからURLだけを抜き出...
-
相対パスと絶対パスの速度
-
時間によってリンク先を変える...
-
nofollowの使い方
-
pythonのWebスクレイピングでfi...
-
フレームだけ閉じる方法ありま...
-
iframe子ページから親ページへ...
-
TARGET=_blankと、<a href="" o...
-
本番環境とテスト環境のURL
-
ステータスバーにリンクのURLを...
-
既にIE仕様のページ内リンク(<...
-
mailto + 変数名
-
文字にふれただけでリンクさせ...
-
ある一定時間操作していない場...
-
アンカーをクリックしても遷移...
-
プルダウンメニューからリンク...
-
リンクとリンクの間に空白の行が
-
HTMLアプリでインラインフレー...
おすすめ情報