2017-05-06 111 views
0

我正在处理与服务器上的PHP API进行通信的Angular应用程序的一些CRUD操作。我对PHP非常陌生,所以当我想要删除数据库中的条目时,我无法解析发送给delete.php的内容。当我将该记录的ID发送到请求的Data属性中时,它会为该名称带上该值,例如,Data包含'id = 1'。解析JSON对象 - Angularjs + PHP

在PHP的最后,我拿掉了一个使用$ _Post ['id']获取删除条件的例子,但是从我可以告诉的是因为我发送一个事实与该名称不匹配的文件。我知道有一些方法可以编码为JSON或以其他方式获取PHP端的值,但是我尝试了它,无论我如何处理它,它都删除了整个表,而不是我想指定的条目。

我应该如何去收集数据并解析它,以便它可以放入delete()函数中?

在App.js:

$http({ 
     method: 'POST', 
     url: 'http://localhost:8080/sns/delete.php', 
     data: {id: user.id} 
    }).success(function(response){ 
     if(response.status == 'OK'){ 
       var index = $scope.users.indexOf(user); 
       $scope.users.splice(index,1); 
     } 
    }); 

delete.php:

<?php 

include 'DB.php'; 

$db = new DB(); 
$tblName = 'members'; 
      if(!empty($_POST['id'])){ 
       $condition = $_POST['id']; 
       $delete = $db->delete($tblName,$condition); 
       if($delete){ 
        $data['status'] = 'OK'; 
        $data['msg'] = 'User data has been deleted successfully.'; 
       }else{ 
        $data['status'] = 'ERR'; 
        $data['msg'] = 'Some problem occurred, please try again.'; 
       } 
      }else{ 
       $data['status'] = 'ERR'; 
       $data['msg'] = 'POST id was, please try again.'; 
      } 
      echo json_encode($data); 
      exit; 

回答

1

试试这个和,那么你应该能够在你的PHP脚本[ “身份证”]调用$ _ POST 。

这应该适用于其他请求没有任何修改,除了网址和数据字段。

$http({ 
    method: 'POST', 
    url: 'http://localhost:8080/sns/delete.php', 
    data: {id: user.id}, 
    headers: { 
      'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    transformRequest: function (data) { 
     transformedData=""; 
     keys=Object.keys(data);values=Object.values(data); 
     for (i in keys) 
      transformedData+=keys[i]+"="+values[i]+"&"; 
     return transformedData; 
} 
}).success(function(response){ 
    if(response.status == 'OK'){ 
      var index = $scope.users.indexOf(user); 
      $scope.users.splice(index,1); 
    } 
}); 
+0

工作完美!你是绝对的明星 - 谢谢你! – StolenSheep