2016-04-27 10 views
1

anglejsを使用して日付をSQL Serverに挿入することができません& php。SQLをフェッチしてmysqlに挿入します。

sqlにデータを挿入し、dbからデータを取得する方法を知りたい。

<body> 
    <div ng-app="myapp" ng-controller="empcontroller"> 
     <form> 
      Employe No. <input type="text" ng-model="emp_no" /><br/> 
      First Name. <input type="text" ng-model="first_name" /><br/> 
      Last Name. <input type="text" ng-model="last_name" /><br/> 
      Department. <input type="text" ng-model="dept_name" /><br/> 

      <input type="button" value="submit" ng-click="insertdata()"/> <br/> 
     </form> 
    </div> 


    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script> 
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.3/angular-route.min.js"></script>  
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script> 
    <script type="text/javascript"> 
     var app = angular.module('myapp',[]); 
     app.controller('empcontroller', function($scope, $http){ 
      $scope.insertdata=function(){ 
       $http.post("insert.php",{'emp_no':$scope.emp_no,'first_name':$scope.first_name,'last_name':$scope.last_name,'dept_name':$scope.dept_name}) 
        .success(function(data,status,headers,config){ 
         console.log("data insert succesfully"); 
        }); 
      } 
     }); 
    </script> 
</body> 

PHPのCODE:あなたのコードで

$data = json_decode(file_get_contents("php://input")); 
$empno = mysql_real_escape_string($data->emp_no); 
$fname = mysql_real_escape_string($data->first_name); 
$lname = mysql_real_escape_string($data->last_name); 
$dept = mysql_real_escape_string($data->dept_name); 

$con = mysql_connect("localhost", "root", "root"); 
mysql_select_db("company", $con); 
mysql_query("INSERT INTO employee('emp_no', 'first_name', 'last_name', 'dept_name')VALUES('".$empno."','".$fname."','".$lname."','".$dept."')"); 
+1

エラーはどうなりますか? –

+0

私はDB接続についてはわかりません、私はPHPエラーだと思います。あなたはこれで助けてください – Solomon

+0

あなたがスクリーンショットを共有するか、何かをコンソールにすると素晴らしいでしょうか? –

答えて

6

あなたはこの

HTML

を試しに行く
<div ng-app="myapp" ng-controller="empcontroller"> 
     <form> 
      Employe No. <input type="text" ng-model="emp_no" /><br/> 
      First Name. <input type="text" ng-model="first_name" /><br/> 
      Last Name. <input type="text" ng-model="last_name" /><br/> 
      Department. <input type="text" ng-model="dept_name" /><br/> 

      <button ng-click="postData()">Submit</button><br> 
     </form> 
    </div> 

CONTROLLER:

app.controller('empcontroller', function ($scope, $http) { 
/* 
* This method will be called on click event of button. 
*/ 
$scope.postData = function() { 

    var request = $http({ 
     method: "post", 
     url: window.location.href + "insert.php", 
     data: { 
      emp_no: $scope.emp_no, 
      first_name: $scope.first_name, 
      last_name: $scope.last_name, 
      dept_name: $scope.dept_name, 
     }, 
     headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
    }); 

} 
}); 

PHPコード:

<?php 

$postdata = file_get_contents("php://input"); 
    $request = json_decode($postdata); 
    $emp_no = $request->emp_no; 
    $first_name = $request->first_name; 
    $last_name = $request->last_name; 
    $dept_name = $request->dept_name; 


$servername = "localhost"; 
$username = "root"; 
$password = "root"; //Your User Password 
$dbname = "myDB"; //Your Database Name 


// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "INSERT INTO employee (emp_no, first_name, last_name, dept_name) 
VALUES ($emp_no, $first_name, $last_name , $dept_name)"; 

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 
?> 
+0

このチュートリアルは私が見つけた最良のチュートリアルです。AngularJSでCRUD操作を行うことができるシンプルなPHP&MySQL REST APIを使用しています。https://www.codeofaninja.com/2015/12/angularjs-crud-example- php.html – Emkey

1

三つの問題:

  1. $scope機能を実行ngのクリックのベストプラクティスは、あなたがそれらを使用すると、変数に渡すことです、 。
  2. PHPコントローラーはJSONを期待しているので、JSONオブジェクトを作成してヘッダーに表示する必要があります。
  3. .success()は推奨されていません。代わりに約束.then()を使用する必要があります。

HTML:

<!-- need to pass model in the ng-click function --> 
<input type="button" value="submit" ng-click="insertdata(emp_no, first_name, last_name, dept_name)"/> 

コントローラー:うまく

$scope.insertata = function(empNo, firstName, lastName, deptName) { 
    //make json payload object 
    var payload = { 
     emp_no: empNo, 
     first_name: firstName, 
     last_name: lastName, 
     dept_name: deptName 
    }; 

    //pass to API 
    $http.post('insert.php', payload, { 
     headers: { 
      'Content-Type': 'application/json; charset=utf-8' 
     } 
    }).then(function(data, status, headers, config) { 
     //success 
    }, function(data, status, headers, config) { 
     //an error occurred 
    }); 
} 
+0

PHPコードも共有できますか? – Solomon

0

、今あなたがPHPのコードが必要KKKKKKKKのコードを使用して。

$json = file_get_contents('php://input'); 
$obj = json_decode($json); // this will retrieve the json. 

そして今、あなたが望むように操作:JSONファイルから情報を取得する

は、あなたがこのような何かを行う必要があり、PHPするポストを使用して掲載しました。ここで

関連する問題