Использование $ http.get для извлечения одной записи

0

У меня есть несколько функций в файле PHP, которые должны писать и запрашивать данные из базы данных сервера. Запросы на эти функции php поступают из js файла. Моя первая функция для записи на сервер работает, но я нахожусь на контрольном блоке без ошибок в моей консоли, чтобы продолжить для получения одной записи.

В настоящее время, я считаю, что я правильно вытащил данные, как я вижу это в журнале консоли, но данные, похоже, не назначают переменным.

Мой PHP файл

    switch($_GET['action']){
case 'writeInvoice':
        writeInvoice();
        break;
case 'fetchInvoice':
        fetchInvoice($_GET['num']);
        break;
}

function fetchInvoice($num){

$fqry = "SELECT customerName,
                dealerName,
                billTo,
                billStart,
                contractTerms,
                item,
                itemPrice,
                quantity,
                sharePercent,
                cost
                FROM invoice
                WHERE idInvoice = '{$num}'";


$qry = new Query($fqry,__LINE__,__FILE__);
$result = json_encode($qry->fetch_array());
print_r($result);


return $result;
}

Мой js/угловой код

    $scope.editInvoice  = function($param){

    $http.get('DealerRec/writeInvoice.php?num='+$param+'&action=fetchInvoice', $scope.list)
        .success(function(data,status,headers,config){console.log("Data Taken"); console.log(data);
         fetchData = data; 
          $scope.list.idInvoice     = $param;
    $scope.list.customerName  = fetchData.customerName;
    $scope.list.dealerName    = fetchData.dealerName;
    $scope.list.billTo        = fetchData.billTo;
    $scope.list.billStart     = fetchData.billStart;
    $scope.list.item          = fetchData.item;
    $scope.list.price         = fetchData.price;
    $scope.list.qty           = fetchData.qty;
    $scope.list.contractTerms = fetchData.contractTerms;
    $scope.list.per           = fetchData.per;
    $scope.list.cost          = fetchData.cost;

 })
        .error(function(data,status,headers,config){ console.log("Data Not Taken"); });



    CustomModal.setOption(2);
};

Моя цель - получить счет-фактуру из базы данных по идентификатору счета-фактуры # и сохранить поле, которое я могу просмотреть и написать над ним.

Моя консоль показывает это, когда я вызываю функцию, например, запись 12

Data Taken

(
    [num] => 12
    [action] => fetchInvoice
 )
                                          {"customerName":"SomeCustomer","dealerName":"SomeDealer","billTo":"Customer","billStart":"2015-06-10","contractTerms":"Billing Software    Terms","item":"SomeItem","itemPrice":"150.00","quantity":"20","sharePercent":"75","cost":"15.00"}

Когда функция выполняется, в своей последней строке он открывает модальный, где данные устанавливаются/редактируются.

1 ответ

0

Следующая часть неверна:

fetchData = $http.get('DealerRec/writeInvoice.php?num='+$param+'&action=fetchInvoice', $scope.list)
    .success(function(data,status,headers,config){console.log("Data Taken"); console.log(data); })
    .error(function(data,status,headers,config){console.log("Data Not Taken"); });

Вы не можете назначить результат $http service для fetchData следующим образом. Вы должны сделать это в обратном вызове успеха:

$http.get('DealerRec/writeInvoice.php?num='+$param+'&action=fetchInvoice',$scope.list)
    .success(function(data,status,headers,config){
        console.log("Data Taken"); 
        console.log(data); 
        fetchData = data; // this is what you have to do
    })
    .error(function(data,status,headers,config){ 
        console.log("Data Not Taken"); 
    });
  • 0
    Я на самом деле обнаружил это мгновение назад, но, похоже, он еще не назначен.
  • 0
    Ну, вам нужно присвоить результаты $scope.list также в $scope.list .
Показать ещё 5 комментариев

Ещё вопросы

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