Если предположить, что введенный вами код находится внутри обратного вызова success
, он может выглядеть примерно так:
$.ajax({
url: "get-orc-data.php",
data: { id: 0 },
dataType: "json",
method: "post",
success: function(data){
// Your Code
var obj = JSON.parse(data);
var total = 0;
}
});
В приведенном выше примере помните, что obj
и total
будут определены только для области действия этой функции. Вы не можете вызвать obj
или total
вне этой функции. Если вам нужно обновить эту переменную, создайте переменную, доступную для более глобальной арены.
Рассмотрим этот код:
$(function(){
var total = 0;
$.ajax({
url: "get-orc-data.php",
data: { id: 0 },
dataType: "json",
method: "post",
success: function(data){
console.log(data);
var orc = data.DADOS.ORCITENS[0].ITENSORC.LITEM;
$(".lista-orcamento").empty();
console.log("Counting Total: " + total);
$.each(orc, function(k, v){
console.log("Adding: " + v.TOTALITEM);
total += parseFloat(v.TOTALITEM);
});
console.log("Total Calculated: " + total);
$.each(orc, function(k, v){
$(".lista-orcamento").append(
'<div class="row produtos" >',
'<div class="col-1">' + v.NITEM + '</div>',
'<div class="col-1"> <input type="text" class="form-control codigo" value=' + v.CODPRODUTO + '></div>',
'<div class="col-1"> <input type="text" class="form-control quantidade" value=' + v.QTDVENDIDO + '></div>',
'<div class="col-3"> <input type="text" class="form-control descricao" value=' + v.DESCRICAO + '></div>',
'<div class="col-1">',
'<select class="form-control prcu">',
'<option value="001">' + v.PRCUNIT + '</option>',
'</select></div>',
'<div class="col-1"> <input type="text" class="form-control prcv" value=' + v.PRCVENDA + '></div>',
'<div class="col-1"> <input type="text" class="form-control desco" value=' + v.DESCPUNIT + '></div>',
'<div class="col-1"> <input type="text" class="form-control prct" value=' + v.TOTALITEM + '></div>',
'<div class="col-1"> <input type="text" class="form-control descot" value=' + v.DESCVUNIT + '></div>',
'<div class="col-1"> <input type="text" class="form-control obs" value=' + v.OBSITEM + '></div>'+
'</div>'
);
});
}
});
});
Теперь total
можно использовать в других функциях.
Кроме того, поскольку для вызова $.ajax()
определен dataType
, он уже должен ожидать объект JSON. Проверка консоли должна подтвердить это, поскольку должен быть объект, возвращенный с ожидаемой структурой данных. Если вы получаете что-то еще, вам нужно просмотреть код и убедиться, что он соответствует структуре данных или просмотреть API.
Надеюсь, это поможет.