フォーム内のボタンをアンカータグで代替する方法

このQ&Aのポイント
  • フォーム内にある複数のボタンをアンカータグで代替する場合、これらのボタンの識別情報をサーバに引き渡す方法を教えて下さい。
  • アンカータグを用いてフォーム内のボタンを代替する方法で、ボタンの識別情報をサーバに通知する方法について教えてください。
  • フォーム内の複数のボタンをアンカータグで代替する場合、ボタンの識別情報をどのようにサーバに渡せばよいですか?
回答を見る
  • ベストアンサー

フォーム内にある複数のボタンをアンカータグで代替する場合、これらのボタンの識別情報をサーバに引き渡す方法を教えて下さい。

php,javascriptの初心者です。 フォーム内にある複数のボタンをアンカータグで代替する場合、これらのボタンの識別情報をサーバに引き渡す方法を教えて下さい。 〔質問の内容〕 以下のフォームにある2つのボタン(文字)を画像ボタン (例えば、(1)、(2))に変えようとしたのですが、 <form action="aaa.php" method="post" name="myform">  ・  ・  ・ <input type="submit" name="btn1" value="修正"> <input type="submit" name="btn2" value="送信">  ・  ・  ・ </form>  (1) <input type="image" src="syuusei.gif" name="btn1" alt="修正">  (2) <input type="image" src="soushin.gif" name="btn2" alt="送信"> 次の情報によると、 http://okwave.jp/qa2838479.html http://forums.devshed.com/html-programming-1/input-type-image-onclick-doesn-t-work-in-netscape-1299.html http://miau.s9.xrea.com/blog/rsd.php?catid=3 2006年 7月 08日 (土曜日)Netscape 4.x の対応とか http://forums.devshed.com/html-programming-1/input-type-image-onclick-doesn-t-work-in-netscape-1299.html 多くのブラウザで安定な動作を確保するためには、 「アンカータグでこれらのボタンを代替する」ことが もっとも望ましいようです。 そこで、このようなアンカータグを用いる場合について、 以下の点を教えて下さるようにお願い致します。 上記ボタンの識別情報name(btn1やbtn2)は、 どのようにしてサーバに通知したらよいのでしょうか?。 以上、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

参照サイトを読みました。 Netscapeは2月いっぱいで最新版もサポート終了するので、 しかも4.xのような世界の利用率何%どころか、何人で数えるようなブラウザを考慮するのはどうかどうも思うのですが、、 クライアントの要件に含まれてたらしょうがないですけどね。 <a href="javascript:document.form1.submit();" onclick="document.form1.btn.value='修正';"><img src="" alt="修正"></a> 未検証です。 IEの2回送信というのは、 先ほどの投稿では、JavaScriptでは送信してないので問題はないと思います。

tfj3116
質問者

お礼

早速、教えて頂きありがとうございます。 教えて頂いた方法で解決致しました。 また、大変参考となりました。 今後ともどうかよろしくお願い致します。

その他の回答 (1)

回答No.1

btn1.x=数字 というデータが送られてきたら「修正」が押された btn2.x=数字 というデータが送られてきたら「送信」が押された ではダメですか? btn1.xもbtn2.xも送られてきていない場合は、 <input type="text">でエンターキー(リターンキー)を押して送信したと判断出来ます。 PHPでは$_POST['btn1']['x']で取得出来ると思います。 JavaScriptを使うのであれば、 <form> <input type="hidden" name="btn" value=""> <input type="image" src="" alt="修正" onclick="this.form.btn.value='修正';"> </form> こんな感じで値を入れて、サーバーではbtnの値を見ればいいと思います。

関連するQ&A

  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>

  • PHPのsubmitボタンが複数ある場合

    PHPのsubmitボタンが複数ある場合 PHPにて会計システムを開発しているのですが、計算ボタンと、更新してDBに追加するためのボタンとが混在している場合、 $_POST等で押されたボタンの処理を分けることは可能なのでしょうか?下の例は、 name="calculation"が押された場合は、val1とval2の値を計算し、totalへ値を入れます。 name="update"が押された場合は、それぞれのフォームの値をDBに更新をかけます。 <?php <form action="****.php" method="POST"> <input type="text" name="val1" value="20"/> <input type="text" name="val2" value="30"/> <input type="text" name="total" value="50"/> <input type="submit" name="calculation"/> <input type="submit" name="update"/> </form> ?> お分かりになる方、ご教授お願いいたします。

    • 締切済み
    • PHP
  • メールフォームでの送信確認から修正ボタンで戻る方法

    現在、メールフォームを作っています。 とりあえず完成し、動作は全く問題ありません。 ただ、「送信ボタン」と確認画面からの「修正する」ボタンを画像にしています。 「修正する」ボタンを画像にするとなぜか送信が完了してしまいます。 下記は「修正する」ボタンのソースです。 <input type="image" name="check0" value="修正する" src="images/form_btn_back.jpg" width="100" height="35" alt="修正する"> 念のため「送信ボタン」のソースも書いておきます。 <input name="submit" type="image" value="この内容で送信する" src="images/form_btn_send.jpg" alt="この内容で送信する"> 「修正する」ボタンのtypeをsubmitにすると前の入力画面に戻ります。 原因がわからないので詳しい方、ご教授をお願いいたします。

  • submitボタンを表示することなく、アンカータグでpost伝送する方法

    javascriptとphpとの双方または何れか一方を用いることにより、 以下のことを実現する方法を教えて下さい。 〔記〕 「<form>タグを用いてPOST伝送する際に、submitボタンに代えて アンカータグを用いる方法」 なお、submitボタンに相当する<input>タグはhtmlソースに含まれてもよいですが、ブラウザ画面上には表示したくありません。 以上、どうかよろしくお願い致します。

  • フォームボタンのvalueを渡すにはどうしたらいいのでしょうか?

    下記のソースのように「word」というテキストフィールドの 入力チェック後ボタンのvalueをword.phpに渡したいのですがどのようにしたらいいのでしょうか? 入力チェックをせず input type="button"ではなくinput type="submit" にするとword.phpに渡せるのですが・・・ ようはA、B、Cそれぞれのボタンを押した時で word.phpでbtnのvalueをPOSTで受け取り 処理をvalue A、B、Cで分岐させたいんです。 よろしくお願いします。 <html> <head> <SCRIPT language="JavaScript"> <!-- function chk(chkfrm){ var tmp = chkfrm.word.value.length; if(tmp > 50 ){ alert("文字数が多すぎます"); } else{ chkfrm.submit(); } } //--> </SCRIPT> </head> <body> <form name="form" method="post" action="word.php"> <input name="word" type="text" id="word"> <input type="button" name="btn" value="A" onclick="chk(this.form);"> <input type="button" name="btn" value="B" onclick="chk(this.form);"> <input type="button" name="btn" value="C" onclick="chk(this.form);"> </form> </body> </html>

  • お問い合わせフォーム。確認画面でつまずいてます。

    phpでフォームを作成しています。フォーム確認画面で思うように動作しません。 確認画面の「修正する」ボタンを「input type="submit"」から「input type="image"」に変更し、画像ボタンとしたいです。 ソースを下記のように書き換えると、前画面に戻らず、そのまま送信してしまいます。 <input type="hidden" name="status" value="send">'."\n".'<input type="submit" value="送信する"> <input type="submit" name="edit" value="修正するぞおお"> ↓ <input type="hidden" name="status" value="send">'."\n".'<input type="image" name="send" src="../images/send_btn.gif" value="送信する"> <input type="image" name="edit" src="../images/reset_btn.gif" value="修正するぞおお'"> 「修正する」ボタンを画像に変更するには、他に追記する必要があるのでしょうか? 正しい動作は、「修正する」ボタンを押すと、入力項目を残した状態のフォームへ戻ります。 その動作もphpのどこに記載されているのか、今いち分かっておりません・・・。 「魔法のメールフォーム MagicalForm」http://magical-form.com/ を利用しています。 初心者で申し訳ないのですが、どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • 【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit

    【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit)の扱いについて どのカテゴリで質問しようか迷いましたがこちらで・・・。 今回は画像を使用して質問します。 今回はHTML(PHP使用)に関しての質問なのですが、 図にあるように、※1をクリックすると、その次のページにA,Bの情報がPOSTで次のページに送信されるようにしています。 ここで、※2にも同じように、A,Bの情報をPOSTで次のページに送信したいのですが、 何故かPOSTで送信されないみたいなのです。 どうにかして※2も※1と同じようにPOSTを送信したいのです。 別の質問サイトで、「押されたsubmitがどれかによって処理を分岐させる」と回答が帰ってきたのですが、javascript無しのPHPだけで以上のことができるのでしょうか? なお、HTMLのFORMタグは入れ子にしていませんし、 POST受け取り先の.phpも問題はありません。 以下、HTMLのform、input部分のソース ※1のフォームタグ内容 <form action="search.php" method="post" name ="search"> ※1ボタンの内容 <input type="submit" name="searching" value="再検索"> ※2のフォームタグ内容 <form action="result.php" method="post" name ="res"> ※2ボタンの内容 <input type="submit" name="result" value="結果表示"> まとめとして、 押されたsubmitがどれかによって処理を分岐させる方法を、 javascriptではなく、PHPのみで実装させたいのです。 どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • button使用で送信確認後のsubmit

    JavaScript初心者です。 リターンを押したときsubmitされてしまうのを防ぐ為に、 送信ボタンをinput type="submit"から"button"に変更し、 confirmで送信の確認をしてOKだったときにsubmit・・・ というものを作りたいのですが、うまくいきません。 ネットで検索などするとform内にsubmitと名前がついたものがあるとうまく動かない という例をみかけましたが、それには当てはまりません。 何か問題があるのでしょうか。 もしわかるかたがいましたら、教えていただけたら助かります。 どうぞよろしくお願い致します。 (ちなみにsmartyを使っています) ■送信確認の部分  function formalert(){  if(window.confirm(送信してもよろしいですか?)){    document.getElementById('index').submit();    return true;  }else{    window.alert('canceled');    return false;  } } ■フォームタグ  <form id="index" name="index" action="index.php?=thanks#page" method="POST"> ■ボタン部分(ダミーのボタンを表示してあり必須項目を記入すると送信できるボタンを表示する。) <input type="button" class="button wide green" id="btn_dammy" onclick="chkHissu(),nameerror(),mailerror();"> <input type="button" class="button wide green" id="btn01" style="display:none" name="btn01" value="{$btn01.1}" onclick="return formalert();"> ■ノンジャバ用ボタン(関わりあるかもしれないので記載します。表示切替しています。) <noscript> <input type="submit" class="button wide green" id="btn01" name="btn01" value="{$btn01.1}" onclick="formalert()" > </noscript>

  • HTMLとPHP間のデータ受け渡し

    以下のHTMLとPHPが有るとします。 htmlここから↓ <html> <head> </head> <body> <form method="post" action="test.php"> <input name="hdn_exit" type="hidden" value="0" /> <input name="btn_exit" type="submit" value="1" /> <input name="btn_cancel" type="submit" value="2" /> </form> </body> </html> htmlここまで↑ phpここから↓ <?php $hdn_exit=$_POST['hdn_exit'] $btn_exit=$_POST['btn_exit'] $btn_exit=$_POST['btn_cancel'] ?> phpここまで↑ とあった ボタン「btn_exit」押下時に、phpの「$btn_exit=$_POST['btn_cancel'] 」の所で、idxが見つかりませんとエラーが出てしまいます。この場合、 どのようにエラーを回避すればよいのでしょうか?

    • ベストアンサー
    • PHP
  • 【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit

    【HTML(PHP?)】複数のフォームと複数の実行ボタン(submit)の扱いについて 【お詫び】 やたらと重く、送信ボタンを何度も押してしまい、同じ質問を何度も投稿した形になってしまい、大変申し訳ございませんでした。 それらの質問は全て削除させていただきました。 どのカテゴリで質問しようか迷いましたがこちらで・・・。 今回は画像を使用して質問します。 今回はHTML(PHP使用)に関しての質問なのですが、 図にあるように、※1をクリックすると、その次のページにA,Bの情報がPOSTで次のページに送信されるようにしています。 ここで、※2にも同じように、A,Bの情報をPOSTで次のページに送信したいのですが、 何故かPOSTで送信されないみたいなのです。 どうにかして※2も※1と同じようにPOSTを送信したいのです。 別の質問サイトで、「押されたsubmitがどれかによって処理を分岐させる」と回答が帰ってきたのですが、javascript無しのPHPだけで以上のことができるのでしょうか? なお、HTMLのFORMタグは入れ子にしていませんし、 POST受け取り先の.phpも問題はありません。 以下、HTMLのform、input部分のソース ※1のフォームタグ内容 <form action="search.php" method="post" name ="search"> ※1ボタンの内容 <input type="submit" name="searching" value="再検索"> ※2のフォームタグ内容 <form action="result.php" method="post" name ="res"> ※2ボタンの内容 <input type="submit" name="result" value="結果表示"> まとめとして、 押されたsubmitがどれかによって処理を分岐させる方法を、 javascriptではなく、PHPのみで実装させたいのです。 どうかよろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう