2016-09-08 11 views
0

私のインデックスページの連絡フォームから自分のメールにメッセージ、名前、電子メールを送信しようとしていますが、いくつか問題があります。私はAngularJSを使用しています。今、フォーム上でsubmitをクリックすると、読み込み画面が表示され、何も起こりません。これは私が現在持っているものです。

HTML:

<form ng-submit="save()" class="contactForm" name="form" ng-hide="loaded" ng-controller="formCtrl"> 
      <input class="input" required="required" type="text" name="name" placeholder="Your Name" ng-model="message.name" /> 
      <input class="input email" required="required" type="email" name="email" value="" placeholder="Your Email" ng-model="message.email" /><br /> 
      <textarea class="textarea" rows="5" required="required" placeholder="Your Message" ng-model="message.text" ></textarea> 
      <button class="btn green">Send Message</button> 
     </form> 

JS:

$scope.save = function() { 
     $scope.loaded = true; 
     $scope.process = true; 
     $http.post('sendemail.php', $scope.message).success(function() { 
      $scope.success = true; 
      $scope.process = false; 
     }); 
    }; 

PHP(sendemail.php):

$rest_json = file_get_contents("php://input"); 
$_POST = json_decode($rest_json, true); 

$email = $request->message.email; 
$name = $request->message.name; 
$message = $request->message.text; 

$from="From: $name<$email>\r\nReturn-path: $email"; 
$subject="Message sent using your contact form"; 
mail("[email protected]", $subject, $message, $from); 

私も次のことを試してみましたPHP:

var_dump($_POST);die(); 
$_POST = json_decode($rest_json, true); 

$email = $_POST["message.email"];    //$request->message.email; 
$name = $_POST["message.name"];      //$request->message.name; 
$message = $_POST["message.text"];   //$request->message.text; 

$from="From: $name<$email>\r\nReturn-path: $email"; 
$subject="Message sent using your contact form"; 
mail("[email protected]", $subject, $message, $from); 

PHPはjavascriptと同じフォルダにあるべきですか?どんな助けでも大歓迎です!どうもありがとう。

+0

var_dumpは何を提供していますか?また、あなたはこれに気付いているかもしれませんが、 'die();'の直後には、2番目のPHPの例で実行されていないものがありません。 – jackel414

+0

私は404エラーを受け取ります: –

+0

"POST /sendemail.php"エラー(404): "見つからない" –

答えて

0

あなたはPOST ajaxリクエストを行っているので、PHPアプリケーションに転送しようとしているデータを使用するには、$ _POST配列でそれを見つける必要があります。それについての詳細はhere

具体的には、あなたはあなただけ$_POSTからデータを取得する必要があります$rest_json = file_get_contents("php://input");

この行は必要ありません。 var_dump($_POST);die();には、そこにあるものと正確にデコードする必要があるものをデバッグするだけです。

+0

ありがとうございますが、私はまだカンタンですそれが働くように思える。私はいくつかのことを試しました。これは私が現在持っているものです(PHP): –

+0

var_dump($ _ POST); die(); $ _POST = json_decode($ rest_json、true); $ email = $ _POST ["message.email"]; //$request-> message.email; $ name = $ _POST ["message.name"]; //$request-> message.name; $ message = $ _POST ["message.text"]; //$request-> message.text; $ from = "From:$ name <$email> \ r \ n返信パス:$ email"; $件名= "お問い合わせフォームを使用して送信されたメッセージ"; mail( "[email protected]"、$件名、$メッセージ、$から); –

+0

悪い書式のおかげで、私は更新されたPHPで質問を編集します。 PHPはjsと同じフォルダにあるはずですか? –

関連する問題