2015-06-07 6 views
0

Я создаю приложение Ionic Mobile с функцией AngularJS. и я пытаюсь отправить форму электронной почты. Часть PHP работает нормально. Я тестировал его с параметризованным URL-адресом, и он работал. но с приложением его не работает.Форма электронной почты для PHP с AngularJS

вот мой HTML часть

<form> 
     <div class="list list-inset"> 
     <label class="item item-input"> 
     <input type="text" placeholder="Name" ng-model="name"> 
     </label> 
     <label class="item item-input"> 
     <input type="text" placeholder="Email" ng-model="email"> 
     </label> 
     <label class="item item-input"> 
     <textarea row="10" cols="50" placeholder="Message" ng-model="message"></textarea> 
     </label> 
     <label class="item"> 
       <button class="button button-block button-positive" ng-click="feedbacksubmit();">Submit</button> 
     </label> 
     </div> 

</form> 

и здесь мои ControllerJS часть

$scope.feedbacksubmit= function(){ 
    $scope.buttonclick() // to Check button has click (yes button works) 
    $http.post("http://boost.meximas.com/mobile/email.php?name="+name+"&email="+email+"&message="+message).success(function(data){ 
    //$scope.tasks = data; 
    $scope.donemessage(); 
}); 
}; 

Вот мой PHP код

<?php 

    $name=$_GET['name']; 
    $email=$_GET['email']; 
    $message=$_GET['message']; 

    if (($name=="")||($email=="")||($message=="")) 
     { 
     echo "All fields are required, please fill <a href=\"\">the form</a> again."; 
     } 
    else{   
     $from="From: $name<$email>\r\nReturn-path: $email"; 
     $subject="Message sent using your contact form"; 
     mail("[email protected]", $subject, $message, $from); 
     echo "Email sent!"; 
     } 

?> 
+0

вы получаете исключение? если это сообщение – svarog

+0

вы могли бы изменить свой http-вызов через действие отправки? добавьте свои параметры через url params в $ http – ReeganLourduraj

+0

@svarog, когда я проверил консоль, если я нажму кнопку отправки, я получил ошибку: не могу найти переменную: email –

ответ

1

Попробуйте размещать данные как объект JSON и передать его как второй аргумент для $http.post().

var data = { 
    name: 'foo bar', 
    email: '[email protected]' 
}; 
$http.post("http://boost.meximas.com/mobile/email.php", data) 
    .success(function(data){ 
     //$scope.tasks = data; 
     $scope.donemessage(); 
}); 
0

Пример кода и JsFiddle: http://jsfiddle.net/YGQT9/

app.controller('FormCtrl', function ($scope, $http) {  
    $scope.data = { 
     firstname: "default", 
     emailaddress: "default", 
     gender: "default", 
     member: false, 
     file_profile: "default", 
     file_avatar: "default" 
    }; 
    $scope.submitForm = function() { 
     console.log("posting data...."); 
     $http.post('http://posttestserver.com/post.php?dir=jsfiddle', JSON.stringify(data)).success(function(){/*success callback*/}); 
    }; 
});