У меня есть несколько функций в файле 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"}
Когда функция выполняется, в своей последней строке он открывает модальный, где данные устанавливаются/редактируются.
Следующая часть неверна:
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");
});
$scope.list
также в$scope.list
.