0

私は一種のボタンとして使用しているこの div を持っています。ほとんどの場合、別のページにリダイレクトするために使用しますが、今回は、次のページにリダイレクトする前にいくつかの php を実行したいと考えています。

<div class="build_detail_option_ele_wrap" onclick="location.href="builders_checkout.php";"></div>

いくつかのセッションなどを作成するbuilders_checkout.phpにリダイレクトして、そこから最終ページにリダイレクトすることはできますか。

(代わりに送信ボタンを使用することでこれを簡単に実行できることはわかっていますが、状況によってはここでは使用できません。)

これは良い考えですか、それともこれを行うことにマイナス面はありますか?

ありがとう

4

6 に答える 6

2

<a href="...">「間違っている」ことは何もありませんが、タグを使用した方が良い結果が得られます(オプションで、style="display:block"のように動作するように設定します<div>)。

に固執する場合は<div>、文字列を一重引用符で囲みbuilders_checkout.phpます。

于 2012-09-10T19:42:03.393 に答える
2

そのスクリプトの後にリダイレクトする必要があるページを含む URL にクエリ文字列を渡します。を使用しました。

 ... builders_checkout.php?next=lol_page.php ...

ではbuilders_checkout.php、スクリプトの最後に次のようなものを使用します。

// if next is set, we will redirect it to next value (lol_page.php);
if(isset($_GET['next'])){
     header('Location: ' . $_GET['next']);
}

それを理解するために質問や問題がある場合は、ただ尋ねてください。

于 2012-09-10T19:44:25.030 に答える
2

誰も実際に(明白な)解決策を与えていないので:

<a class="build_detail_option_ele_wrap" href="builders_checkout.php"></a>

これを CSS に追加しても、目に見える違いはありません。

a.build_detail_option_ele_wrap {
    text-decoration: none;
    color: inherit;
    display: block;
}
于 2012-09-10T19:46:46.523 に答える
1

まあ、代わりにjQuery(またはプレーンJS)を使用して実装してonclick=""ください。もちろん、<a href="">div の代わりにan を使用します

これまでのところ、問題はありません。ローディングバーで処理中であることをユーザーに知らせるようにしてください。

于 2012-09-10T19:41:06.077 に答える
1

onclick正常に動作するはずですが、宣言内の二重引用符を次のように単一引用符に変更する必要があります。

<div class="build_detail_option_ele_wrap" onclick="location.href='builders_checkout.php';"></div>

さらに高度にしたい場合は、AJAX メソッドを使用して必要なデータを PHP スクリプトに送信し、そのスクリプトが必要とするすべての処理に成功した場合 (またはそのスクリプトが文字列を返す場合) にのみリダイレクトすることを検討できます。ブラウザのリダイレクト先を示します)。

于 2012-09-10T19:48:01.217 に答える
1

あなたが求めていると思うことが正しい場合は、AJAX の使用を検討することをお勧めします。

jQuery はこれを簡単にします。

$(".build_detail_option_ele_wrap").on('click', function () {
    // Do your $_SESSION (or other) stuff
    $.get('builders_checkout.php', function () {
        // after the $.get has completed:
        window.location.href = 'lol_page.php';
    })
});

あなたのDIV:

 <div class="build_detail_option_ele_wrap"></div>

このようにして、「builders_checkout.php」を非同期で実行し、2 回リダイレクトすることなく「lol_page.php」URL をロードします。

于 2012-09-10T19:52:48.870 に答える