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

javascriptとphpとの双方または何れか一方を用いることにより、
以下のことを実現する方法を教えて下さい。
〔記〕
「<form>タグを用いてPOST伝送する際に、submitボタンに代えて
アンカータグを用いる方法」

なお、submitボタンに相当する<input>タグはhtmlソースに含まれてもよいですが、ブラウザ画面上には表示したくありません。

以上、どうかよろしくお願い致します。

A 回答 (6件)

document.allはつかわない方がよいですね


formにidをふって
<a href="javascript:document.getElementById('myForm').submit();">ほげほげ</a>
<form id="myForm" method="post" action="hogehoge.htm">
・・・
</form>
としてみてください
    • good
    • 0
この回答へのお礼

ありがとうございます。
先にredfox63さんから教えて頂いた方法と同様に
実現できました。
submitボタンに相当するアンカータグの数が、
ページ当たり最大で20個を超えるため、
もし、さらに省力化して簡便に実現できる方法がありましたら、
是非教えて頂きたく、
よろしくお願い致します。

お礼日時:2007/11/30 20:36

質問者さんのやろうとしていることは無謀です。


なにもかも省略してアンカーをクリックしたら自分の思ったフォームが
実行されるわけがありません。idを振る必要があるのはどのフォームを
送るか確定するためなのですから・・・。

それでもなお省略にこだわるのであれば、以下のようなやり方があります。
これは1番目のアンカーに1番目のフォームをわりあてる・・・という
やりかたですので、なにかちょっと一個アンカーをいれるだけで
ボロボロになり運用方法としてはお勧めしませんがどうしてもというなら
試してみてください。

<script type="text/javascript">
window.onload=function(){
var tags=document.getElementsByTagName("a");
for(var i=0;i<tags.length;i++){
tags[i].href="javascript:document.forms["+i+"].submit()";
}
}
</script>

<a>test1</a>
<a>test2</a>
<a>test3</a>

<form action="./test1.html" method="post">
</form>
<form action="./test2.html" method="post">
</form>
<form action="./test3.html" method="post">
</form>
    • good
    • 0
この回答へのお礼

大変お手数をかけました。

ご指摘の通りですね。

確実に動作させるためには、
個々のアンカーに連番等のユニークな識別子を付与して
対処することが一番だと思います。

度々の質問に懇切丁寧に回答頂きありがとうございました。

今後ともよろしくお願い致します。

お礼日時:2007/12/01 18:54

こんにちは



こんな感じのやつですか?

<script type="text/javascript"><!--
function f(n) {
document.getElementsByTagName("form")[n].submit();
}
//--></script>

<a href="javascript:f('0')";>test1</a>
<a href="javascript:f('1')";>test2</a>
<a href="javascript:f('2')";>test3</a>

<form action="./test1.html" method="post">
</form>
<form action="./test2.html" method="post">
</form>
<form action="./test3.html" method="post">
</form>

この回答への補足

早速ありがとうございます。
そうです。こんな感じです。
できれば、「0」、「1」…のような識別情報なしで
できると簡便になるとおもうのですが…

可能でしたら、よろしくお願い致します。

補足日時:2007/12/01 09:20
    • good
    • 0

>submitボタンに相当するアンカータグの数が、


>ページ当たり最大で20個を超えるため、

それはそれぞれ別のフォームをサブミットするのか、
一つのフォームだけなのかによってだいぶ違います

この回答への補足

失礼しました。
また、大変お手数をかけてしまい申し訳ありません。

ページ当たり最大で20個となるサブミットの対象は、
何れも「別のフォーム」です。

「これらのフォームに異なるユニークなidを割り付ける処理」
を省いて、同等のことが実現できましたら、
是非教えて頂きたく、よろしくお願い致します。

補足日時:2007/12/01 00:11
    • good
    • 0

ごめんなさい


<a href="hogehoge" onclick="document.all["myForm"].submit();">ほげほげ</a>

<a href="hogehoge" onclick="document.all['myForm'].submit();">ほげほげ</a>
としてください
    • good
    • 0
この回答へのお礼

早速教えて頂き、ありがとうございます。
この方法で、実現できました。
今後ともよろしくお願い致します。

お礼日時:2007/11/30 20:32

アンカータグの onclickイベントで formタグのsubmitメソッド呼べば良いのでは



<form id=myForm>
<a href="hogehoge">ほげほげ</a>
</form>
といったコードなら

<form id=myForm>
<a href="hogehoge" onclick="document.all["myForm"].submit();">ほげほげ</a>
</form>
といった具合で ・・・
    • good
    • 0

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