あるphpのオープンソースで、inputタグで作成された送信ボタンにリンクが貼られているのですが、ソースを見たところ、周辺にAタグはありません。どこでどのようにリンクを張っているのでしょうか? 一般的に考えられるケースをお教え下さい。


以下がそのソースです。

<input type="image" src="includes/languages/english/images/buttons/button_continue.gif" border="0" alt="Continue" title=" Continue ">

ボタン上にカーソルを持っていくと、ブラウザの下部にURLが表示されます。
ボタンのプロパティでもURLが確認できます。

基本的なことでしょうがご回答お願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/07/25 15:38:53
  • 終了:2011/07/25 18:13:30

回答(2件)

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922011/07/25 16:06:08

ポイント150pt

>あるphpのオープンソース

オープンソースなら隠さずに質問すればいいと思うのですが。


JavaScriptで動的にinputタグをaタグに入れているのではないでしょうか。

ステータスバーにもリンク先が表示されます。

ブラウザで普通に、「ページのソースを表示」だとaタグは見えません。Firebug等ツールを使うと見えます。


<html>
<head>
<script>
onload = function() {
var a = document.createElement('a');
a.href = 'http://www.google.co.jp';
document.body.appendChild(a);
a.appendChild(document.getElementById('imgSubmit'));
}
</script>
</head>
<body>
<input id="imgSubmit" type="image" src="http://www.google.co.jp/images/srpr/logo2w.png">
</body>
</html>
id:hhashimo

ご回答ありがとうございます。オープンソースはosCommerceになります。

以下がそのソース全体です。(341行)

http://phpxref.com/xref/oscommerce/catalog/checkout_payment.php.source.html

JavaScriprtはいくつか書かれていますが、ご回答頂いたようなinputタグをいじるようなものはないようです。

tep_image_submit()という関数を使ってますが、この関数の中でもURLは付加してません。

何か他に思い当たりましたらよろしくお願いします。






この回答は質問の回答とはなりませんでしたが、コメント欄でご助言頂き、

<input type="image" はsubmitボタンと同等で、<form methdo="post" action=.... で送信先をしており、これによってあたかもAタグでリンクを貼っているような動作となっていることを理解しました。

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

2011/07/25 18:12:54
id:km1981 No.2

km1981回答回数429ベストアンサー獲得回数492011/07/25 17:24:38

ポイント50pt

PHPと関係ないと思います

jQueryではないでしょうか?

下のを試してみてください

<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
window.onload = function() {
    $('input:image').wrap('<a href="http://q.hatena.ne.jp/"></a>');
}
</script>
</head>
<body>
<form>
<input type="image" src="includes/languages/english/images/buttons/button_continue.gif" border="0" alt="Continue" title=" Continue ">
</form>
</body>
</html>
id:hhashimo

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

色々とやり方があるのでしょうが、問題としているファイルと同じ方法で、別のファイルでも送信(別ファイルに移動)したいと思っています。

問題としているファイルではjQueryというものは使われていないようです。

他に何か思い当たりましたらお願いいたします。

2011/07/25 17:31:45
  • id:Cherenkov
    動作確認ができるものを提示できませんか?
  • id:hhashimo
    コメントありがとうございます。

    http://www.gigantes.co.jp/test/shop/ で、

    Emailアドレス:test@test.jp
    パスワード:testtest

    でログインして頂き、何かショッピングカートに商品を追加、「レジに進む」をクリック後、何回か「次に進む」ボタンを押して、

    https://www.gigantes.co.jp/test/shop/checkout_payment.php?

    まで来た時の「次に進む」ボタンが問題のボタンです。
    (その過程の「次に進む」ボタンも同じかと思いますが、拡張ソースが含まれており、話がややこしくなりますので)
  • id:Cherenkov
    ありがとうございます。
    Firefox5.0, Chrome12で確認したところURLは表示されませんでした。

    ボタンにカーソルをあわせてURLが表示されるブラウザはおそらくIEですよね?
    試しにGoogleのトップページでボタンにカーソルをあてたところ表示されたので、
    IEはセキュリティの観点からsubmit先をステータスバーに表示する仕様なのではないでしょうか。
  • id:hhashimo
    コメントありがとうございます。
    私もFirefox5.0で確認しましたが、確かにFirefoxでは出ませんね。

    ただ、問題にしてるのは、表示上のことではなく、何故Aタグが貼られていないボタンをクリックして、その特定のファイルに飛ぶことが出来るのかということです。

    何かわかりましたらご回答お願いいたします。
  • id:Cherenkov
    <input type="image"はsubmitボタンと同等ですが、その点は理解していますか?
    http://www.tagindex.com/html_tag/form/input_image.html
  • id:hhashimo
    ><input type="image"はsubmitボタンと同等ですが、その点は理解していますか?

    丁度その点を調べていて、先ほど理解しました。

    で、どうやらこの部分で別のページに送信しているということがわかりました。

    <form name="checkout_payment" action="https://www.gigantes.co.jp/test/shop/checkout_confirmation.php?osCsid=ef4c73e70ee5717318b728cf54e02943" method="post" onsubmit="return check_form();">

    合ってますよね? せっかくですので、この点についてご回答頂ければ幸いです。
    (合っていれば終了します)
  • id:Cherenkov
    htmlのformについて調べるといいでしょう。
    上記のコードではinputのvalueの値をpostで、actionのアドレスに送信しています。
  • id:Cherenkov
    合ってます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません