0

i want that by pressing the one button ,the input data should be send on my both following domains.but by this coding the data just send to the 2nd domain..

Inline Code Example Here

<form name="Form1" method="post">
<strong><span style="font-size: small;">Username:</span></strong><input name="username" type="text" /><br />

<strong><span style="font-size: small;">Password:</span></strong> <input name="password" type="password" /><br />

<input type="button" name="button1" value="Submit" onclick="OnButton1();" /></form>

<script language="Javascript" type="text/javascript">

function OnButton1()
{
document.Form1.action = "http://my domain 1/action.php"
document.Form1.target = "_blank"; // Open in a new window
document.Form1.submit(); // Submit the page
return true;
}

function OnButton1()
{
document.Form1.action = "http:/my domain 2/action.php"
document.Form1.target = "_blank"; // Open in a new window
document.Form1.submit(); // Submit the page
return true; 

}
</script>
4
Contributors
9
Replies
11
Views
4 Years
Discussion Span
Last Post by minitauros
1

Both of your functions have the same name, so presumably the second version is overwriting the first one, meaning that really there is only one function - the second one. Did you try to name the two functions differently and add both functions to the onclick event of the button?

function OnButtonA(){
//send form to location one.
}
function OnButtonB(){
//send form to location two.
}
onclick="OnButtonA(); OnButtonB();"

If this doesn't work, I would try to use Ajax to achevieve the desired result.

2

You could use a header and pass on the data from one site to the next, but you pass it via $_GET AFAIK. The php in the last site then header redirects back to the original form page (if it's online!). Alternatively, you could use jQuery's:

$.ajax({
     url   : 'http://example.com',
     method: 'post',
     data  : form.serialize(),
     success: function(response){
        alert("The remote site said: " + response);
     },
     dataType: 'jsonp'
});
0

No idea if it works, but maybe this is an idea?

function buttonOne()
{
    document.Form1.target = "_blank";

    // Submit data to first domain.
    document.Form1.action = "http:/my domain 1/action.php"
    document.Form1.submit();

    // Submit data to second domain.
    document.Form1.action = "http:/my domain 2/action.php"
    document.Form1.submit();

    return true; 
}

Edited by minitauros

1

AFAIK, the submit() function actually sends the form, so it's not available the second time as you now find yourself at the first 'action' destination.

1

Yea but you're being sent to a new tab, right? So the original tab will remain to exist :).

1

tab?

The way I see it, even if you have 2 buttons (inline js):

<button onclick="submit1();">Submit1<button>
<button onclick="submit2();">Submit2<button>

Say you submit using the first button, the 'submit event is done and dusted'. The user is then redirected to the 'action' destination of the form or to whatever the js script dictates. That means no further javascript can run as you are now on a different page. I may be wrong, but the only way I can see this working is via Ajax - if both destinations are same origin (same site as the form). A variation of this using 'jsonp' to override the same origin policy may (I think) be possible to send the same data to multiple different domains. Apologies, if I've misunderstood your point.

Other solutions I've seen deal with header() and http-vars, which send on from the first destination, passing the data via querystring - so they get picked up as get. In order for this to work properly, (I assume again), the second destination needs to redirect back to the original form. Now problems can occur here if the original form is in a local page - can't redirect back to the user's machine. Also I don't know what would happen to the any session variables held by the form's domain / site.

There may also be an iframe solution, where you can use it to send data to the page held within an iframe - which could be hidden. However, that IMO, is a really horrible way to do it (early ajax technique).

THis is a really interesting topic and I'd be v. interested in seeing a different solution.

1

No I mean his form's target is _blank, which means a new window will open and the original window will stay to exist to execute another form submission. At least, that MIGHT be so, I've never tested it, but that's why I came up with the idea :p.

1

That will definitely work to send the form without changing the contents of the original form. However, you then spawn 2 new tabs/windows. Not what I'd call a 'tidy' solution. Also no feedback possible to the original window.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.