2016-05-16 59 views
0

在我的AngularJS應用程序中,輸入表單的數據在點擊提交按鈕後並未存儲在MySQL數據庫中。成功提交表單數據後提醒表明它正在工作。另外,在點擊提交按鈕之後,我希望應用程序繼續到下一個視圖(#/ setup-step2) - 但它仍然在step1。未存儲在MySQL中的AngularJS表單數據db

HTML部分(#/設置-步驟1):

<form ng-submit="submitForm1()"> 
Job title: <input type="text" name="jobtitle" ng-model="formData1.jobtitle"> 
Vacancy ID: <input type="text" name="vacancyid" ng-model="formData1.vacancyid"> 
<button type="submit" class="animatedbutton"> Proceed </button> 
</form> 

controller.js:

var ctr = angular.module('myApp.controller', []); 
ctr.controller 
('Step1Controller', ['$scope', '$routeParams', '$http', function($scope, $routeParams, $http){ 
$scope.formData1 = {}; 
         $scope.submitForm1 = function() { 
         $http({ 
          method: 'POST', 
          url: 'php/setup-step1.php', 
          data: $.param($scope.formData1), 
          headers: { 'Content-Type': 'application/x-www-form-urlencoded'} 
         }) 
          .success(function(data){ 
           console.log(data); 
           alert("It worked"); 
          }) 
          .error(function(data) { 
           console.log(data); 
           alert("It didn't work"); 
          }) 

        } 
}]); 

設置-step1.php在文件夾/ PHP:

<?php 
include_once('db.php'); 
// Check connection 
if(mysqli_connect_errno()) 
    {echo '<p>Connection to MySQL server failed: '.mysqli_connect_error().'</p>';} 
else 
    {echo '<p>Connection to MySQL server successful.</p>';} 

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

if (empty($_POST['jobtitle'])) 
    {$errors['jobtitle'] = 'Job title is required.';} 
else { 
// Escape user inputs for security 
    $jobtitle = $_POST['jobtitle']; 
    $vacancyid = $_POST['vacancyid']; 
    $data = "INSERT INTO campaign (Job_title, Job_id) VALUES ('$jobtitle','$vacancyid')";mysql_query("INSERT INTO campaign (Job_title, Job_id) VALUES ('$jobtitle', '$vacancyid')");} 

if ($connect->query($data) === TRUE) 
    {$conn->close();} 
else 
    {echo "Error: " . $sql . "<br>" . $conn->error;} 

exit(); 
?> 
+0

你看到任何在鉻控制檯?服務器日誌中有什麼? mysql日誌? – rleir

+0

將控制檯日誌添加到問題 – YaeVo

回答

0

我自己找到了答案。問題是不正確的PHP和MySQL語法。以現在的方式更新代碼。

0

首先, 請確保您在執行對服務器的任何請求之前啓用cors。當您使用angularjs時, sually意味着你正在向服務器發送cors請求。如果你沒有啓用cors選項,你不能從服務器調用任何方法,因爲它是不允許的。

第二, 只是保持你的setup-step1.php.php內的PHP代碼。你不需要任何HTML代碼,因爲它只會返回你的請求的結果。

三, 據我所知,由於服務器占主導地位和網站域名不同,您無法更改網頁的位置。您需要將用戶重定向到另一個頁面。你可以使用$ location或$ state來找到在angularjs中重定向的方法。

+0

Tbh我從來沒有聽說過cors。如果在同一臺服務器上的另一個簡單的html表單(沒有angularjs或任何)成功執行php請求並將數據存儲在MySQL數據庫中,這仍然適用嗎? – YaeVo

+0

如果它們在同一臺服務器上。僅當服務器端和客戶端位於不同的域中時才應用Cors。 – Yepo