Ajax sayfasında diziye eleman ekleyemiyorum
Kolay gelsin kasa sayfasındaki fiyat ve adet i ajax php gönderiyorum ajax php de bu ikisinin çarpımını array push ile diziye ekliyorum ardından array sum ile dizinin toplamını anasayfada göstermek istiyorum lakin dizi toplamı olarak hep son gönderdiğim değer gösteriyor nasıl bir yol izlemem lazım hatayı nerde yaptım
- bu sitenin şifremi unuttum bölümü nerde yokmu benmi bulamıyorum
<?php
##ajax php sayfası
$dizi=[];
array_push($dizi,$urun->fiyat*$adet );
$dizi['kasa']= array_sum($dizi);
echo json_encode($dizi);
?>
success: function (data) {
if(data.hata){
$('.dinamikModal .modal-body').html(data.hata);
$('.dinamikModal').modal('show');
}else{
$('.gunlukIslemForm .islem').append(data.ok);
$('.gunlukIslemForm .tutar').html(data.kasa);
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (13)
Ajax ile çözmeye çalıştığını biliyorum ama fikir vermesi açısından javascript ile client tarafındaki çözümüde burada paylaşıyorum. https://jsfiddle.net/83mfyqjz/
<?php
if($_SERVER['REQUEST_METHOD']!=='POST' || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) !== 'xmlhttprequest' ){
die('Yetkisiz giriş');
}
require_once '../../rq/ayar.php';
$token= p('token',TRUE);
$barkod= p('barkod',TRUE);
$adet= bulDegis(',','',p('adet',TRUE));
$dizi=[];
if($token!==$_SESSION['formToken']){
$dizi['hata']='Token hatası var işleme devam edemiyorum';
}
if(empty($barkod)){
$dizi['hata']='Barkod okutmadın';
echo json_encode($dizi);
die();
}
$urun= tekSatir('SELECT * from urun WHERE barkod=?',[$barkod]);
if(empty($urun)){
$dizi['hata']='Bu ürün veri tabanında kayıtlı değil';
echo json_encode($dizi);
die();
}
if(!empty($barkod)&&$urun->tur==0&&empty($adet)){
$adet=1;
}
if(!empty($barkod)&&$urun->adet<$adet){
$dizi['hata']='Stokta yazdığın kadar ürün kalmamış ürün adetlerini kontrol et';
echo json_encode($dizi);
die();
}
if(!empty($barkod)&&$urun->tur==1&&empty($adet)){
$dizi['hata']='Gram yazmadın';
echo json_encode($dizi);
die();
}else{
$stokDus=esg("UPDATE urun SET adet=adet-? WHERE barkod=?",[$adet,$barkod]);
if(!empty($stokDus)){
$dizi['ok']=
"<tr>"
."<th class='w-50' scope='row' >{$urun->urun}</th>"
."<td>{$adet}</td>"
."<td>{$urun->fiyat}</td>"
."<td>".number_format($urun->fiyat*$adet,2)."</td>"
."</tr>";
-------------BURASINI KURGULAYAMADIM NASIL YAPACAĞIMI BİLMİYORUM YARDIMEDİN LÜTFEN---------------------
array_push($dizi,$urun->fiyat*$adet );
$dizi['kasa']= array_sum($dizi);
-------------BURASINI KURGULAYAMADIM NASIL YAPACAĞIMI BİLMİYORUM YARDIMEDİN LÜTFEN---------------------
echo json_encode($dizi);
}else{
$dizi['hata']='Ürün stoktan düşülemedi';
echo json_encode($dizi);
die();
}
}
Tarayıcıda sağ tık yapıp incele ye tıkla.
Network sekmesinde sayfayı yenile ve ajaxtan gelen değerlere bak.
çünkü her ajax isteğinde $dizi
değişkenini tekrar oluşturuyor doğal olarak son değeri döndürüyor. Tek bir ajax request ile tüm fiyat ve adetleri gönderip ona göre hesap yaptırman gerekiyor.