2
I am trying to play a calculation of total in an input and also in session in shopping cart that I am developing and am not succeeding, I will try to explain the problem I have.
The inputs are like this:
<div class="qty">
// QUANTIDADE
<?php if ( isset($_SESSION["quantidade"][$id]) && ($_SESSION["quantidade"][$id] != 0) ){ ?>
<input type="text" id="quantidade" name="quantidade" maxlength="10" value="<?php echo $_SESSION["quantidade"][$id] ?>" id_qtd="<?php echo $list['id_produto'] ?>" />
<?php } else { ?>
<input type="text" id="quantidade" name="quantidade" value="<?php echo $QTD; ?>" class="input" id_qtd="<?php echo $list['id_produto']; ?>" />
<?php } ?> x
// VALOR UNITÁRIO
<?php if ( isset($_SESSION["valor_unitario"][$id]) && ($_SESSION["valor_unitario"][$id] != 0) ){ ?>
<input type="text" id="valor_unitario" name="valor_unitario" maxlength="10" value="<?php echo $_SESSION["valor_unitario"][$id] ?>" id_unit="<?php echo $list['id_produto'] ?>" />
<?php } else { ?>
<input type="text" id="valor_unitario" name="valor_unitario" value="<?php echo $QTD; ?>" class="input" id_unit="<?php echo $list['id_produto']; ?>" />
<?php } ?> =
SOMA TOTAL
<input type="text" id="valor_total" name="valor_total" value="<?php echo $_SESSION["valor_total"][$id]; ?>"
id_total="<?php echo $list['id_produto']; ?>" />
Each record, as quantidade and valor unitárioI am storing in session and they are registered even when I insert a new product, I do it to store them:
The calls are like this:
// ATUALIZANDO QUANTIDADE
$("input[name='quantidade']").blur(function(){
var sAcao = 'atualizar-quantidade';
var sQuantidade = $(this).val();
var sID_QTD = $(this).attr('id_qtd');
$.ajax({
type: "POST",
url: "atualizar-dados.php",
data: {
'acao' : sAcao,
'quantidade' : sQuantidade,
'id_qtd' : sID_QTD
},
success: function(msg){
$(".ms").text(msg);
}
});
});
// ATUALIZANDO O VALOR UNITÁRIO
$("input[name='valor_unitario']").blur(function(){
var sAcaoUnit = 'atualizar-valor';
var sValorUnitario = $(this).val();
var sID_UNI = $(this).attr('id_unit');
$.ajax({
type: "POST",
url: "atualizar-valor.php",
data: {
'acaoUnit' : sAcaoUnit,
'valor_unitario' : sValorUnitario,
'id_unit' : sID_UNI
},
success: function(msg){
$(".ms").text(msg);
}
});
});
});
Amount:
session_start();
$acaoUnit = $_POST['acao'];
if ( isset($acao) && $acao == 'atualizar-quantidade' ){
$id = isset($_POST["id_qtd"]) ? $_POST["id_qtd"] : null;
$_SESSION["quantidade"][$id] = $_POST['quantidade'];
//echo $_SESSION["quantidade"][$id];
}
Unit Value:
session_start();
$acaoUnit = $_POST['acaoUnit'];
if ( isset($acaoUnit) && $acaoUnit == 'atualizar-valor' ){
$id = isset($_POST["id_unit"]) ? $_POST["id_unit"] : null;
$_SESSION["valor_unitario"][$id] = $_POST['valor_unitario'];
// echo $_SESSION["valor_unitario"][$id];
}
What I’m trying to do to keep the total sum:
window.onload = function() {
$("input[name='valor_total']").focus(function() {
$('.qty').each(function() {
// console.log(this);
var qtd = $(this).find('input[name=quantidade]').val()
var val = $(this).find('input[name=valor_unitario]').val();
// QUANTIDADE TOTAL
var total = parseFloat(qtd) * parseFloat(val);
$(this).find('input[name=valor_total]').val(total);
var sAcaoTotal = 'atualizar-total';
var sValorTotal = total;
// var sID_Total = $(this).attr('id_total');
// alert(sValorTotal);
$.ajax({
type: "POST",
url: "atualizar-total.php",
data: {
'acaoTotal' : sAcaoTotal,
'valor_total' : sValorTotal
// 'id_total' : sID_Total
},
success: function(msg){
$(".ms").text(msg);
}
});
});
})
}
And the attempt to save the value in session:
session_start();
$acaoTotal = $_POST['acaoTotal'];
if ( isset($acaoTotal) && $acaoTotal == 'atualizar-total' ){
$id = isset($_POST["id_total"]) ? $_POST["id_total"] : null;
$_SESSION["valor_total"][$id] = $_POST['valor_total'];
// echo $_SESSION["valor_unitario"][$id];
}
For quantity and unit value it works, but for total it does not, it is doing the following: I insert a new product, it informs the quantity and unit value and when clicking on the total field the sum is made, but when inserting a new product the total adds up, but if clicking on the total field the value is calculated. I hope I didn’t make it complicated.
Unfortunately I could not understand what I meant, I think of some solutions already, however, to be sure, I would like you to explain better
– Rafael Augusto
Hello @Rafaelaugusto, I need to save the total value, I cannot keep it available, the quantity and unit value remain, but the total value does not.
– adventistapr
Can be with JS?
– Rafael Augusto
If you help me @Rafaelaugusto, it’s on.
– adventistapr
I’ll give you the idea to save, if you think it works in your case (because I didn’t understand very well to be sure), put a complete answer. Ever thought of using
sessionStorageorlocalStorage? you store the value and can search to any mountain, on any page.– Rafael Augusto