2012-01-10 6 views
0

外部URLにフォームデータを送信できません。私はこれを達成するためにPHPブリッジを構築する必要があることを理解していますが、それは私が落ちているところです。フォームの内容をajaxで外部URLに送信

フォームマークアップ:

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

+0

正しい、私は直接外部のURLに投稿することはできません –

答えて

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); 
    } 
    }); 
}); 
... 
}); 

は今、あなただけのPOST VARSを受け入れ、外部URLに送信しますbridge.phpを構築する必要があります。

関連する問題