我无法使用php和angularjs使用更新功能将记录更新到数据库中

时间:2016-04-20 08:14:39

标签: php angularjs

这是我的表格代码:

<tbody>
      <tr ng-repeat="tabdata in tabledata">
                <td>
                    <div ng-hide="editdata[tabdata.id]">{{tabdata.name}}</div>
                    <div ng-show="editdata[tabdata.id]"><input type="text" ng-model="tabdata.name"></div>
                </td>
                <td>
                    <div ng-hide="editdata[tabdata.id]">{{tabdata.city}}</div>
                    <div ng-show="editdata[tabdata.id]"><input type="text" ng-model="tabdata.city"></div>
                </td>
                <td>
                    <button ng-hide="editdata[tabdata.id]" ng-click="edit(tabdata)">EDIT</button>
                    <button ng-show="editdata[tabdata.id]" ng-click="update(tabdata)">UPDATE</button>
                </td>
            </tr>
            </tbody>

这是我的代码:

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

这里我从数据库表中获取数据:

    $http.get('fetch.php').success(function(data) {
        $scope.tabledata = data;
    });


    $scope.editdata={};

此功能用于编辑按钮:

    $scope.edit=function(tabdata){
        $scope.editdata[tabdata.id]=true;
    };

这是用于更新按钮:

    $scope.update=function(tabdata) {

        $scope.editdata[tabdata.id] = false;

这里我必须调用ajax方法将值更新到数据库中。 或者我们也可以使用服务功能?

我使用orm文件在我的fetch.php文件中使用$ input连接数据库..

        $http({
            method:"post",
            url:'fatch.php',
            data:{

            }
        })
    };
}]);

问题是,当我点击编辑按钮时,它会被修改,但之后,当我编辑一些行数据时,它只更新静态页面中的数据。我也必须更新我的数据库表。那怎么办呢?

我必须使用SERVICE函数和AJAX调用方法更新我的数据库表。知道怎么做呢?

1 个答案:

答案 0 :(得分:0)

以下是针对您案例的解决方案:

$scope.update=function(tabdata) {

    $scope.editdata[tabdata.id] = false;
    $http({
        method:"post",
        url:'fetch.php',
        data:{
               // your data to send
        }
    }).then(function(success){
        // refresh live your tabledata angularjs will do the job for you
        $http.get('fetch.php').success(function(data) {
            $scope.tabledata = data;
        });
    })
}

在您的情况下,您不需要Ajax调用。