v2.5.2
Giriş yap

Ajax sayfasında diziye eleman ekleyemiyorum

burhan
752 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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

  1. 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); 
?>
Cevap yaz
Cevaplar (13)
burhan
1483 gün önce

Arkadaşlar problemi şu şekilde halletim ilginize teşekkür ederim elinize sağlık

$kasa=[            
    $urun->fiyat*$adet
];  

$_SESSION['kasa'][]=$kasa;
$sum = 0;
    
foreach ($_SESSION['kasa'] as $x){
    $toplam+=$x[0];
}

$dizi['toplam']=$toplam;
burhan
1485 gün önce

zafer hocam eline sağlık bu kodu entegre edecek bilgim yokeyok çok tsk

zafer
1485 gün önce

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/

burhan
1485 gün önce

Akşam deneyip sonucu yazacağım

makifgokce
1485 gün önce

böyle dene.

    $dizi['kasa'] += $urun->fiyat*$adet;
burhan
1485 gün önce
<?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();         
    }   
}




burhan
1485 gün önce

@tayfun erbilen bahsettiğin olayı nasıl yapa bilirm yardım edermisin

burhan
1485 gün önce

burhan
1485 gün önce

@makifgokce Bu şekil

makifgokce
1485 gün önce

Tarayıcıda sağ tık yapıp incele ye tıkla.
Network sekmesinde sayfayı yenile ve ajaxtan gelen değerlere bak.

burhan
1485 gün önce

Arkadaşlar yapmak isteğim tam olarak bu bi bir nevi yazarkasa uygulaması her barkod okutuşumda veriler geliyor lakin tutar toplamını sağ üst köşeye nasıl atarım session ile yoksa dizi ilemi yapacam anlamadım bilen varsa bizahmet yardımcı olsun

zafer
1486 gün önce

Anlamadığım için soruyorum. Bu işlemi basit bir javascript fonksiyonu ile client tarafında halletmek hem daha az maliyetli hemde daha pratik olmaz mı?

tayfunerbilen
1486 gün önce

çü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.