2017-05-15 23 views
0

PHP 5.6.30バージョンを使用しています。次のコードデータを2回挿入して実行しようとします.iはregister.phpをビューとして、app.jsをhttpポストサービス用に使用しています。 ?同じデータがxampp mysqlに2回挿入されます

insert.php(データベース接続)

<?php 

$connect = mysqli_connect("localhost", "root", "","user"); 
$data = json_decode(file_get_contents("php://input")); 
$first_name = mysqli_real_escape_string($connect, $data->firstname); 
$last_name = mysqli_real_escape_string($connect, $data->lastname); 
$user_name = mysqli_real_escape_string($connect, $data->username); 
$emailid = mysqli_real_escape_string($connect,$data->emailid); 
$password = mysqli_real_escape_string($connect,$data->password); 
$mobile = mysqli_real_escape_string($connect,$data->mobile); 

$query = "INSERT INTO register(fname,lname,uname,email,pass,mobile) 
    VALUES ('$first_name','$last_name','$user_name','$emailid','$password','$mobile')"; 
$result = mysqli_query($connect, $query) ; 
if($result == TRUE) 
{ 
    echo "Data Inserted..."; 
} 
else 
{ 
    echo 'Error'; 
} 

>

register.php:

enter code here 
<html> 
<head><title>Nav</title> 
<script 
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"> 
</script> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular- 
route.js"></script> 
<link rel="stylesheet" type="text/css" href="css/header.css"/> 
    <script src="app.js"></script> 
    </head> 
    <body ng-app="myApp"> 
    <div ng-controller="RegisterController"> 

    <form ng-submit="rsubmit()" class="rform">REGISTER 
    <input type="text" class="form-control" name="firstname" ng- 
    model="firstname" placeholder="firstnamesss" ><br> 
    <input type="text" class="form-control" name="lastname" ng- 
    model="lastname" placeholder="lastname" ><br> 
    <input type="text" class="form-control" name="username" ng-model="username" placeholder="username"><br> 
    <input type="text" class="form-control" name="emailid" ng-model="emailid" placeholder="emailid" ><br> 
    <input type="text" class="form-control" name="password" ng-model="password" placeholder="password" required=""/><br> 
    <input type="text" class="form-control" name="mobile" ng-model="mobile" placeholder="mobileno" ><br> 
    <button ng-click="rsubmit()" >Register</button> 
    <a href="#/home">Cancel</a>   
    <br></h2> 
    </form> 
    </div> 
    </body> 
    </html> 

app.js:

var app = angular.module('myApp', ['ngRoute']); 
app.controller('RegisterController',function($scope,$http){ 
$scope.rsubmit=function(){ 

$http.post("insert.php" ,{ 
'firstname':$scope.firstname, 
'lastname':$scope.lastname, 
'username':$scope.username, 
'emailid':$scope.emailid, 
'password':$scope.password, 
'mobile':$scope.mobile, 

    }) 
.success(function(data){ 
      alert(data); 
      $scope.firstname = null; 
      // $scope.lastname = null; 

      }); 
    } 
    }); 
+0

あなたのPHPコードは完璧に見えますが、私はあなたが問題を2回送信していると思われます。サーバーにリクエストを送信するコードを表示してもよろしいですか? –

答えて

0

documentationから:

警告:ngClickハンドラとngSubmitハンドラの両方を併用すると、「ダブルサブミッション」が発生しないように注意してください。 ngSubmitがいつトリガされるかの詳細については、フォームの指示文を参照してください。あなたはng-submitng-clickの両方を使用するので、あなたは二回、コントローラ(リクエスト)をトリガあなたのコードで

。ボタン/入力フィールドのngClick属性を削除するだけで効果があります。

+1

blunder mistake..yesその仕事..あなたに感謝.. –

0

ng-clickをボタンから削除します。フォーム内で使用されるボタンは常にフォームを送信します。ボタンをクリックすると同時にボタンをクリックすると、rsubmit関数が呼び出されます。フォームはsubmission.Theフォーム送信コール再びrsubmit機能...そのための方法の

二種類 1. <button type="button" ng-click="rsubmit()" >Register</button> - あなたは (または) 2.Skip action属性フォームからtype="button"を使用するときには、ボタンのフォームの送信パワーを無効にします。

関連する問題