2016-05-19 20 views
0

フォームを完成させたいページがあります.Javascriptファイルが情報を確認し、情報をphpファイルに送って私にメールし、ダウンロードを開始します。 問題は、javascriptファイルをメールを送信するか、ファイルをダウンロードできるようにすることができますが、両方をダウンロードすることはできません。JavaScriptファイルを実行してからファイルをダウンロードする

問題のコードは次のようになります。

else { 
document.dlform7.action = "http://www.myurl.com/c/post7.php" ; 
document.dlform7.submit(); 
window.location.assign(url); 
} 

は、私はこれらのアクションの両方が一度に行わことができます(おそらく負荷を使用して)方法はありますか?

編集:

Ajaxのオプション:

else { 
$.ajax({ 
    url: "http://www.myurl.com/c/post7.php"; 
    type: "POST", 
    data: data,  
    cache: false, 
    success: function() {    
     window.location.assign(url); 
     document.dlform7.submit();     

     }, 
+3

最初に[電子メールを送信する](http://stackoverflow.com/questions/5335273/how-to-send-an-email-using-php)というPHPスクリプトにフォームを送信してから[ダウンロードするファイル](http://stackoverflow.com/questions/7263923/how-to-force-file-download-with-php) – adeneo

答えて

2

私はあなたのフォームの提出ハンドラを調整する必要があると思います。 IRCの場合、送信イベントによってページがリロードされます。

phpスクリプトへのajax呼び出しを行うフォームのsubmitイベントハンドラを作成したいと考えています。その後、ページのリロードを防ぐためにfalseを返します。これにより、同時にファイルをダウンロードさせることができます。

UPDATE

あなたは関係なく、あなたが次の操作を行うことができ、電子メールを送信するには、PHPスクリプトで何が起こるかのファイルをダウンロードしないようにしたい場合は、次のAjaxメソッドは、フォームの送信である

else { 
$.ajax({ 
    url: "http://www.myurl.com/c/post7.php"; 
    type: "POST", 
    data: $(document.dlform7).serialize(),  
    cache: false, 
    }); 
    window.location.assign(url); 

。要求の後にリダイレクトが起こるように、コードの流れを壊すことはありません。 (私はこれがうまくいくと確信しています)。 PHPスクリプトが正常に、あなたがそうのような成功コールバックにコードを移動する実行されるまで、あなたは待つようにしたい場合は

else { 
$.ajax({ 
    url: "http://www.myurl.com/c/post7.php", 
    type: "POST", 
    data: $(document.dlform7).serialize(),  
    cache: false, 
    success: function() { window.location.assign(url); } 
    }); 

もちろん、あなたはまた、単に電子メールを送信するためにPHPのページを変更することができますコメント内の言及としてダウンロードしたいファイルで応答してください。

+0

私はonClick = "return checkValuesControl(true);を使用して送信します。 – Patrick

+0

あなたが投稿したコードスニペットから、 'document.dlform7.submit();'行がページをリロードし、コードが次の行に移動しないようにします。非同期送信を呼び出すようにこの行を変更します(ajax呼び出しを行う)。そして、あなたが探しているすべてのことをすることができるはずです。 – Schleis

+0

それでは、ファイルのダウンロードをajax呼び出しの成功関数に入れますか? – Patrick

関連する問題