Ajax запрос Post нет функции

#php #jquery #angularjs #ajax

#php #jquery #angularjs #ajax

Вопрос:

У меня простая проблема, но я не могу найти ошибку. Может быть, вы можете помочь. Вот мой запрос:

 $http({
    url:'api/create_plane.php',
    method: "POST",
    data: {
        planeKey: $scope.editKey,
        planeSQLID: $scope.editSQLID,
        planeLMID: $scope.editLMID,
        planeAFID: $scope.editAFID,
        planeVersion: $scope.editVersion,
        planeLot: $scope.editLot,
        planeStation: $scope.editStation                   
    },
    dataType: 'json'
}).success(function(data, status, headers, config) {
    console.log(data);
}, function(response) {
    console.log(response);
});
  

Это мой Php-файл:

 $Planes = array();
$MAX_PLANES = 45;

if (empty($_POST['planeLMID'])) {
    for ($i = 1;$i < $MAX_PLANES;$i  ) {
        if (checkSQL($i)) {
            $Planes[$i] = new createPlane($i,$db);
        }
    }
    echo json_encode($Planes);   
}
else {
    for ($i = 1;$i < $MAX_PLANES; $i  ) {
        if ($Planes[$i]['planeSQLID'] == $_POST['planeSQLID']) {
            echo "HALLO";
        }   
    }
}
  

Однако я не вижу "Hallo" в любое время. Мне нужна ваша помощь, ребята.

Комментарии:

1. В else случае $Planes , если они пусты

2. Задолго до того, как я перейду к пустым плоскостям, я получаю эхо-кодирование json

3. Вы получаете свой echo json в другом запросе

4. Какую отладку вы выполнили? Какие шаги вы предприняли, чтобы исправить это до сих пор?

5. Нет, есть только 1 вывод на консоль, и это console.log (данные) выше

Ответ №1:

В create_plane.php файл, в котором вы пытаетесь использовать пустой массив $Planes, когда $_POST[‘planeLMID’] пуст.

Поэтому вам нужно извлекать массив $Planes каждый раз, независимо от того, получаете ли вы данные по почте. См. Измененный create_plane.php

 $Planes = array();
$MAX_PLANES = 45;

for ($i = 1;$i < $MAX_PLANES;$i  ) {
    if (checkSQL($i)) {
        $Planes[$i] = new createPlane($i,$db);
    }
}
echo json_encode($Planes);   

if(!empty($_POST['planeLMID'])) {
    for ($i = 1;$i < $MAX_PLANES; $i  ) {
        if ($Planes[$i]['planeSQLID'] == $_POST['planeSQLID']) {
            echo "HALLO";
        }   
    }
}