2016-04-03 5 views
0

AngularJSを使用してPHPスクリプトにアクセスしていますが、特定の関数を呼び出すだけです。以下のapp.jsスクリプトでは、updatePostおよびdeletePost関数はボタンのクリックによって呼び出されます。私はすでに関数を別々のファイルに分割していましたが、angleのhttp関数を使ってそれらを別々に取得しましたが、それらはすべて正常に機能しましたが、今はfunctions.phpファイル内の関数に格納したいだけですが、個別に?AngularJSを使用してPHPスクリプト内の特定の関数を呼び出す方法は?

は、ここに私のapp.jsスクリプト

var app = angular.module('adminPanel', ['ngRoute', 'ngAnimate']) 

.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/dashboard', { 
     templateUrl: 'includes/main.php', 
     controller: 'MainCtrl' 
     }). 
     otherwise({redirectTo: '/dashboard'}) 
    }]) 

.controller('MainCtrl', ['$scope', '$http', function($scope, $http) { 
    getPosts(); 
    function getPosts() { 
     $http.post('functions.php').success(function(data) { 
      $scope.posts = data; 
     }); 
    } 
    $scope.updatePost = function(post) { 
     $http.post('functions.php',{"id":post.id,"title":post.title,"description":post.description,"category":post.category,"status":post.status}).success(function(data) { 
      if (data == true) { 
       getPosts(); 
      } 
     }); 
    } 
    $scope.deletePost = function(post) { 
     if (confirm("Are you sure you want to delete this post?")) { 
      $http.post('functions.php',{"id":post.id}).success(function(data) { 
       if (data == true) { 
        getPosts(); 
       } 
      }); 
     } 
    } 
}]); 

ここに私のPHPスクリプトがあります。

答えて

0

GET変数を使用して、すべてを同じPHPファイルに保存したい場合は、関数を分割できます。

AngularJS app.jsファイルで参照されているURLは、それぞれfunctions.php?action=getPosts,functions.php?action=updatePost、およびfunctions.php?action=deletePostに変更する必要があります。

<?php 
    $connect = mysqli_connect('localhost', 'root', '', 'cms1'); 

    if ($_GET['action'] === 'getPosts') 
    { 
     global $connect; 
     $query = "SELECT * FROM posts"; 
     $result = mysqli_query($connect, $query); 
     $posts = array(); 
     while ($row = mysqli_fetch_assoc($result)) { 
      $posts[] = $row; 
     } 
     echo $json_info = json_encode($posts); 
    } 

    else if ($_GET['action'] === 'updatePost') 
    { 
     global $connect; 
     $data = json_decode(file_get_connecttents("php://input")); 

     $id = mysqli_real_escape_string($connect, $data->id); 
     $title = mysqli_real_escape_string($connect, $data->title); 
     $description = mysqli_real_escape_string($connect, $data->description); 
     $image = mysqli_real_escape_string($connect, $data->image); 
     $category = mysqli_real_escape_string($connect, $data->category); 
     $status = mysqli_real_escape_string($connect, $data->status); 

     $query = "UPDATE posts SET title='$title',description='$description',image='$image',category='$category',status='$status' WHERE id=$id"; 
     mysqli_query($connect, $query); 
     echo true; 
    } 

    else if ($_GET['action'] === 'deletePost') 
    { 
     global $connect; 
     $data = json_decode(file_get_contents("php://input")); 
     $query = "DELETE FROM posts WHERE id=$data->id"; 
     mysqli_query($connect, $query); 
     echo true; 
    } 
?> 
+0

が、私はそれを試してみましたが、これは、記事を表示しません:あなたは以前に言及したURLでaction GET変数を使用する場合は

、あなたのPHPは次のよ​​うになりますか? – sidlack

関連する問題