2016-09-08 33 views
0

我試圖從我的索引頁上的聯繫表單發送郵件,姓名和電子郵件到我自己的電子郵件,但我有一些麻煩。我正在使用AngularJS。現在,當我單擊表單上的提交時,它只是出現一個加載屏幕,並沒有發生任何事情。這是我目前有:

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();'會阻止第二個PHP示例中的其他任何內容運行。 – jackel414

+0

我得到一個404錯誤: –

+0

「POST /sendemail.php」錯誤(404):「Not found」 –

回答

0

您發出POST ajax請求,所以爲了使用您要傳輸到您的PHP應用程序的數據,您需要在$ _POST數組中找到它。更多關於它here

更具體地說,你並不需要這一行$rest_json = file_get_contents("php://input");

你只需要從$_POST獲取數據。只需讓var_dump($_POST);die();來調試那裏和你需要準確解碼的東西。

+0

謝謝,但我仍然無法似乎得到它的工作。我嘗試了一些不同的東西。這是我目前有(PHP): –

+0

var_dump($ _ POST);死(); $ _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」; $ subject =「使用您的聯繫表格發送的消息」;郵件(「[email protected]」,$ subject,$ message,$ from); –

+0

道歉的格式不好,我會用更新的php編輯問題。應該將php放在與js相同的文件夾中? –