2015-12-10 5 views
0

Как получить int-значение из $ http-запроса в PHP?PHP получить INT от углового HTTP-запроса

Я пытаюсь отправить HTTP-запрос из приложения с угловым выражением, но я не могу получить значение отправленного параметра `id`` в моей переменной PHP $ id.

Я попробовал несколько методов, как:

$id = $_POST['id']; 

или

$id = $connection->real_escape_string(isset($_POST['id']) ? $_POST['id'] :''); 

в моем PHP, но ничего не работает ...

Это моя функция, чтобы отправить запрос на $ HTTP

function removeFriend(id) { 
     var request = $http({ 
      method: "delete", 
      url: "php/deleteFriend.php",data: $.param({'id':id}), 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
     }); 
     return(request.then(handleSuccess, handleError)); 
    } 
+3

потому, что вы делаете HTTP-удалить. поэтому PHP не будет заполнять $ _POST, который выполняется только при использовании 'post' verb ... –

+0

Начните с рассмотрения запроса в инструментах отладчика вашего браузера. Как именно отправляется запрос? Он содержит данные тела? Возможно, вместо этого идентификатор отправляется как параметр запроса в URL? – deceze

+0

@MarcB Спасибо, сейчас он работает. Может быть, вы можете добавить ответ, чтобы я мог его принять;) – JohnDizzle

ответ

1

Проблема была метод запрос $ http. вы должны использовать POST, поэтому PHP может получить значения с помощью метода $_POST['id'].

Так вот код, который работает:

Javascript

function removeFriend(id) { 
     var request = $http({ 
      method: "post", 
      url: "php/deleteFriend.php",data: $.param({'id':id}), 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
     }); 
     return(request.then(handleSuccess, handleError)); 
    } 

PHP

$id = $_POST['id']; 
0

Я думаю Вы должны сделать свой запрос так:

function removeAccount(id) { 
    var request = $http({ 
    method: "DELETE", 
    url: urlBase, 
    data: { 
     id: id 
    } 
    }); 

    return (request.then(handleSuccess, handleError)); 

} 

также вы, пожалуйста, добавьте в ваш конфиг угловую этот код:

$httpProvider.defaults.transformRequest = function(data) { 
     if (data === undefined) { 
      return data; 
     } 
     return $.param(data); 
    }; 
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'; 

Mine работать и надеюсь, что это помогает

+0

Я думаю, что это не работает для меня из-за метода ': DELETE «'. См. Мой ответ для рабочего решения. – JohnDizzle

+0

@JohnDizzle, Ну, для меня это работает, я просто добавляю конфигурацию $ httpProvider в мою конфигурацию угловой, если вы не добавляете конфигурацию. It does not work, а PHP не обнаруживает запрос. –

Смежные вопросы