1

誰かが私たちのウェブサイトのフォームに記入し、送信をクリックすると、ランディング ページに誘導されます。送信時に (1) URL1 が新しいウィンドウとして開くように、そのフローを変更したいと思います。(2) ユーザーは現在のフォーム ページから URL2 にリダイレクトされます。

手伝ってくれますか?

現在のコード スニペット -

if(! isset($RedirectOnSuccess))
    $RedirectOnSuccess = 'oldURL';

私は技術初心者なので、それをつなぎ合わせるのにあなたの助けが必要です. 私は MODx を使用しており、Web ページ自体が次のように php スクリプトを呼び出します - [!FORM_SNIPPET? &RedirectOnSuccess=oldURL !]

4

3 に答える 3

2

ポップアップのコンテキストに依存する可能性がありますが、従来のポップアップを使用するのではなく、ページ内のライトボックスやその他のajaxベースの表示ツールなどの侵襲性が低く広告がブロックされやすいものを検討する場合があります。送信ボタンのクリックイベントからライトボックスをトリガーし、メッセージを表示して、閉じるか確認時にフォームを送信できます。

一部の(一般的ではない)ユーザーがJavaScriptを無効にしている可能性があるため、フォームの結果ページの表示がJavaScriptに依存しているソリューションは避けてください。上記のように実装されている場合、そのようなユーザーはポップアップを見逃しますが、フォームは引き続き通過します。

jQueryを使用して、MODxがフォームの生成に使用するphpコードを変更せずにこれを実装し、代わりにxhtmlヘッダーにjavascriptを配置して、フォームの送信ボタンにクリックイベントを添付できます。例えば:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script src="/colorbox/jquery.colorbox.js"></script>
    <script type="javascript">
    $("#FormID.input[type=submit]").click(function(e) {
      /* prevent form from submitting */
      e.preventDefault();
      e.stopPropagation();

      /* on colorbox close, submit form */
      $(document).bind('cbox_close', function(){
        e.submit(); // submit the form on close
      });

      /* open the colorbox */
      .colorbox({href:"http://example.com/url1"});
    });
    </script>

ここではColorBoxを使用しましたが、他のライトボックスの代替案にも同じ考え方が当てはまるはずです。私はこれをブラウザでテストしなかったので、必要に応じてテストして適応させてください。

于 2011-05-09T23:24:30.347 に答える
2

JavaScriptで行います。http://www.tizag.com/javascriptT/javascriptredirect.php & http://www.pageresource.com/jscript/jwinopen.htm

于 2011-05-09T22:04:50.693 に答える
1

ポップアップ ブロッカーに問題がある場合、最善の策は、フォームのアップロード時に HTML を使用して新しいウィンドウをターゲットにすることです。

<form target="_blank">

次に、JavaScript を使用して (おそらくopener.location.hrefポップアップで)、メイン ウィンドウを別の URL にリダイレクトできます。

于 2011-05-09T22:06:01.783 に答える