2016-08-12 14 views
-1

電子メールにフォームを送信した後、2つの電子メールを受け取る1どうすれば修正できますか?電子メールにフォームを送信した後、代わりに2つの電子メールを取得する1

app.controller('threeCtrl',function($scope){ 
    $("#subBusinessOne").click(function() { 
    var url = "businessFormOne.php"; 
    $.ajax({ 
       type: "POST", 
       url: url, 
       data: $("form#businessFormOne").serialize(), 
       success: function(data) 
       { 
        var name = $("input[name=name]").val(""); 
        var rel= $("input[name=phone]").val(""); 
       } 
      }); 
    return false; // avoid to execute the actual submit of the form. 
     }); 
    }); 

PHP:

<?php 
$ToEmail = 'myemail.com'; 
$EmailSubject = 'Охрана бизнес-обьектов'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$MESSAGE_BODY = "Имя: ".$_POST["name"].""; 
$MESSAGE_BODY .= "Телефон: ".$_POST["phone"].""; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 
+0

'event.preventDefault()' https://api.jquery.com/event.preventdefault/ –

答えて

1

私は#subBusinessOneは、フォームが送信ボタンであることを推測する私は唯一の1文字が

JSを電子メールで送信するようになっていることが必要です。 AJAXリクエストを送信してから、通常のHTTPリクエストとしてフォームを再度送信します。

ボタンのクリックイベントを検出する代わりに、フォームが送信されているかどうかを確認してから、デフォルトのアクションを防ぎ、AJAXリクエストを送信する必要があります。私はあなたがクロスAJAX要求を作成しようとしていると思いますし、それは最初なので、あなたが
1の代わりに2電子メールを得た理由だ

app.controller('threeCtrl',function($scope){ 
    $("#businessFormOne").submit(function(e) { 

    e.preventDefault(); // this is to avoid the actual submit 

    var url = "businessFormOne.php"; 
    $.ajax({ 
       type: "POST", 
       url: url, 
       data: $("form#businessFormOne").serialize(), 
       success: function(data) 
       { 
        var name = $("input[name=name]").val(""); 
        var rel= $("input[name=phone]").val(""); 
       } 
      }); 
     }); 
    }); 
0
app.controller('threeCtrl',function($scope){ 
    $("#subBusinessOne").submit(function(e) { 
    e.preventDefault(); 
    var url = "businessFormOne.php"; 
    $.ajax({ 
       type: "POST", 
       url: url, 
       data: $("form#businessFormOne").serialize(), 
       success: function(data) 
       { 
        var name = $("input[name=name]").val(""); 
        var rel= $("input[name=phone]").val(""); 
       } 
      }); 
     }); 
    }); 
0

使用.preventDefault()

app.controller('threeCtrl',function($scope){ 
     $("#subBusinessOne").click(function(e) { 
     e.preventDefault(); 
     var url = "businessFormOne.php"; 
     $.ajax({ 
        type: "POST", 
        url: url, 
        data: $("form#businessFormOne").serialize(), 
        success: function(data) 
        { 
         var name = $("input[name=name]").val(""); 
         var rel= $("input[name=phone]").val(""); 
        } 
       }); 
     return false; // avoid to execute the actual submit of the form. 
      }); 
     }); 
0

:あなたのJSコードは次のようになりメソッドOPTIONS(他のドメインからリクエストを送信できるかどうかをチェックする)とメソッドPOSTを使用した2番目のリクエスト

+0

それ?それはいつもうまくいっていますが、最初はangularRoutingを使用しています。私は形状に関する角度の仕組みを理解していないので、問題を考えると –

+0

http://stackoverflow.com/questions/22968406/how-to-skip-the -options-preflight-request-in-angularjs – mishanon

関連する問題