2016-07-12 3 views
0

index.htmlをストアangularjs介しngclick使用して、データベース内のparamsは、PHP、MySQLの

<html> 
<body> 
<html ng-app="myApp"> 
<body ng-controller="personController"> 
    <button ng-click="addNewClicked=!addNewClicked;" >Add New  person</button> 
    <form ng-init="addNewClicked=false; " ng-if="addNewClicked" id="newPersonForm" > 
     <input type="text" ng-model="input.firstname" placeholder="Add New firstname" ng-focus="addNewClicked">{{input.firstname}} 
     <input type="text" ng-model="input.lastname" placeholder="Add New last name" ng-focus="addNewClicked">{{input.lastname}} 
     <button type="submit" ng-click="addPerson(input)">Add New person</button> 
    </form> 
    <script type="text/javascript" src="js/angular.min.js"></script> 
    <script type="text/javascript" src="app/app.js"></script> 
</body> 

app.js

var app = angular.module('myApp', []); 
    app.controller('personController', function($scope, $http) { 
    $scope.addPerson = function (input) { 
    $http.post("ajax/addPerson.php?  firstname="+firstname+"$lastname="+lastname).success(function(data){ 
    }); 
    }; 
    }); 

addPerson.php

<?php 
require_once '../includes/db.php'; // The mysql database connection  script 
if(isset($_GET['firstname'])){ 
$firstname = $_GET['firstname']; 
$lastname=$_GET['lastname']; 



$query="INSERT INTO persons(firstname,lastname) VALUES ('$firstname','$lastname')"; 
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__); 

$result = $mysqli->affected_rows; 

    echo $json_response = json_encode($result); 
    } 
    ?> 

私はdatabase.iはそのusining .FORデータベースへのパラメータは、姓と名の保存先にパラメータを格納する方法がわからない初心者として

<?php 
$DB_HOST = '127.0.0.1'; 
$DB_USER = 'root'; 
$DB_PASS = ''; 
$DB_NAME = 'angularcode_person'; 
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); 
?> 

をdb.phpクリック機能addperson()。

+0

具体的にしてください。どのようなエラーがありますか?エラーメッセージが出ますか? –

+0

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

答えて

0

あなたは私が推測できる問題を知らずに。

関数を使用して入力値を送信する代わりに、角度コントローラで$scopeを使用できます。

ことはあなたがあなたのJavaScriptファイルの変更では、それからちょうどfirstnamelastname

ng-click="addPerson(input)"input引数を削除するinput.firstnameinput.lastnameからモデル名を変更する必要があり、姓と名の値にアクセスできるようにするには$scopeを使用する関数は、次のようになります。

$scope.addPerson = function() { 
    $http.post("ajax/addPerson.php?firstname="+$scope.firstname+"&lastname="+$scope.lastname).success(function(data){ 
    console.log("Success") 
    }); 
}; 
関連する問題