2017-05-06 70 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