AngularJS и PHP - Примечание: неопределенное свойство: stdClass

0

У меня есть простой HTTP-запрос PATCH от AngularJS к PHP и я получаю сообщение об ошибке. Notice: Undefined property: stdClass::$todoName в моей консоли. Вот коды:

HTML

<div ng-controller="UpdateTodoController">
<div class="input-field col s12" ng-repeat="t in todo">
      <input id="{{ t.id }}" type="text" class="validate" ng-model="todoName">
      <label class="active" for="{{ t.id }}">{{ t.name }}</label>
      <button class="btn waves-effect waves-light" ng-click="updateTodo(t.id)">Update
      </button>
</div>
</div>

контроллер

function UpdateTodoController($http, $scope, $routeParams, $location) {


    $scope.updateTodo = function(todoId) {

        var req = {
         method: 'PATCH',
         url: 'app/endpoints/update-todo.php',
         headers: {
           'Content-Type': 'application/x-www-form-urlencoded'
         },
         data: { 
            todoName: $scope.todoName,
            todoId: todoId
            }
        }

        $http(req)
        .then(function successCallback(response) {
            $location.url('/');
            console.log(response);
        }, function errorCallback(response) {
            console.log(response);
        });
    }

}

Обновление-todo.php

$data = json_decode(file_get_contents('php://input'));

$todoId = $data->todoId;
$todoName = $data->todoName;

$statement = $db->prepare("UPDATE todo_list SET name=? WHERE id=?");
$statement->execute(array($todoName, $todoId));
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($results);

Он обновляет конкретное поле с идентификатором, но дает значение NULL. Я что-то упустил? Спасибо.

1 ответ

2

Вы отправляете form-urlencoded данных form-urlencoded но пытаетесь использовать json_decode.

Удалите заголовок Content-Type из углового запроса.

$http default - отправить application/json.

Простым тестом было бы вернуть дамп $data и проверить в браузере dev tools

  • 0
    Все еще получаю то же самое, но постараюсь.
  • 0
    какая-то особая причина использования PATCH? Вы пробовали POST или PUT?
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню