2012-01-10 82 views
0

我无法将表单数据发送到外部网址。我知道我需要建立一个php桥梁来完成这个任务,但那正是我坠落的地方。用ajax发送表单内容到外部网址

形式标记:

<div class='done' style='background:#fffee1;border:1px solid #fdf96c;padding:10px;'> 
    Success! We'll be in touch soon 
</div> 
<div class='form'> 
    <form method='post' action='http://example.com/external-url'> 
     <input type="hidden" name="idstamp" id="idstamp" value="would need to pass this too" /> 
     <p class='element'> 
      <label for='account'>Client Name</label> 
      <input type='text' id='account' name='account' class='text' /> 
     </p> 
     <p class='element stack'> 
      <label for='user'>User Name</label> 
      <input type='text' id='user' name='user' class='text' /> 
     </p>      
     <p class='element stack'> 
      <input type='submit' class='button orange' value='Submit' style='padding:0; width:130px;height:30px' id='submit'/> 
      <div class='loading'></div> 
     </p> 
    </form> 
</div> 

的动作是基本的,只显示一则成功的div隐藏整个表格的div:

$('.form').fadeOut('slow');     

//show the success message 
$('.done').fadeIn('slow'); 
$('.toggle').delay(5000).fadeOut('slow'); 

缺少的部分被发送到本地PHP文件,解析出数据然后发送到外部URL。我在任何地方都搜索过这个网站,似乎无法找到一个简单的解决方案,并希望在这里找到一个解决方案。

+0

bridge = proxy? – 2012-01-10 16:19:47

+0

是正确的,因为我无法直接发布到外部网址 – 2012-01-10 16:22:52

回答

1

这里的jQuery的一部分:

$(function(){ 
... 
$(".form form").submit(function(e){ 
    e.preventDefault(); 
    var formData = $(this).serialize(); 
    $.post("bridge.php",formData).done(function(rdata){ 
    if (window.console && window.console.log) { 
     console.log(rdata); 
    } 
    }).fail(function(){ 
    if (window.console && window.console.log) { 
     console.log(arguments); 
    } 
    }); 
}); 
... 
}); 

现在你只需要建立bridge.php接受POST变量,并将它们发送到外部URL。