开发者

PHP hack - open two websites when submitting form

After someone completes a form on our website and clicks on submit s/he is directed to a landing page. I wo开发者_StackOverflowuld like to change that flow so that upon submitting (1) URL1 opens as new window; and (2) user is redirected from current form page to URL2.

Can you help?

current code snippet -

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

I'm a tech newbie so need your help in piecing it together. I am using MODx and the web page itself calls the php script with the following - [!FORM_SNIPPET? &RedirectOnSuccess=oldURL !]


do it with javascript. http://www.tizag.com/javascriptT/javascriptredirect.php & http://www.pageresource.com/jscript/jwinopen.htm


It likely depends on the context of your popup, but rather than using a traditional popup you might consider something less invasive and prone to ad-blocking such as a lightbox or other ajax-based display tools within the page. You can trigger the lightbox from a click event on the submit button, display your message with it, and then submit the form on close or confirm.

Avoid solutions where viewing the form result page is dependent on javascript as some (uncommon) users may have it disabled. If it is implemented as above, such users would miss your popup but the form would still go through.

You could use jQuery to implement this without modifying the php code that MODx uses to generate your form, and instead attach a click event to the form's submit button by putting javascript in the xhtml header. For example:

    <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>

I used ColorBox here, but the same idea should apply to other lightbox alternatives. I didn't browser test this, so be sure to test and adapt as necessary.


Given problems with popup blockers your best bet is to target a new window with HTML on the form upload.

<form target="_blank">

Then using JavaScript (perhaps via opener.location.href in the popup), you can redirect the main window to another URL.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜