v2.5.2
Giriş yap

php&javascript adet güncelletme

wwx
266 defa görüntülendi

Kodlarım bu şekilde adeti arttırmaya çalıştığım da sayfa yenileniyor ama bir veri değişimi olmuyor hatam nerede ?

<div class="counter js-counter" data-min="<?= $_SESSION['sepet']['adet'][$key]; ?>" data-adet-guncelle="<?= $_SESSION['sepet']['adet'][$key]; ?>">
   <button class="counter__button js-counter-button js-counter-minus" type="button">
      <svg class="icon icon-minus-circle">
          <use xlink:href="upload/icon.svg#icon-minus-circle"></use>
      </svg>
   </button>
<div class="counter__value js-counter-value"><?= $_SESSION['sepet']['adet'][$key]; ?></div>
    <button class="counter__button js-counter-button js-counter-plus" type="button">
      <svg class="icon icon-plus-circle">
          <use xlink:href="upload/icon.svg#icon-plus-circle"></use>
      </svg>
    </button>
        <input class="js-counter-input js-counter-result js-counter-babies" type="hidden" value="<?= $_SESSION['sepet']['adet'][$key]; ?>" name="adet">
    </div>
 $(document).on('click','[data-adet-guncelle]',function(){
        $.ajax({
              url: "post.php",
              type: "post",
              data: 'islem=adet_guncelle&id='+$(this).attr('data-adet-guncelle'),
              success: function (x) {
               location.reload();
              }
        });
    });
Burası post.php
   if($_POST['islem'] == 'urun-ekle'){
        if(is_numeric($_POST['urun_id']) AND is_numeric($_POST['adet'])){
            if($_POST['adet'] < 1){
              $_POST['adet'] = 1;
            }
            $urunquery = $db->prepare("SELECT * FROM urun where id=:id LIMIT 1");
            $urun = $urunquery->execute(array(":id"=>$_POST['urun_id']));
            $urun = $urunquery->fetch(PDO::FETCH_ASSOC);
            if($urun){
                  if($_POST['adet'] > $urun['stok']){
                    echo 0;
                  }else{
                    $uniqid = $_POST['urun_id'];
                    $_SESSION['sepet']['urun_id'][$uniqid]      = $_POST['urun_id'];
                    $_SESSION['sepet']['adet'][$uniqid]         = $_SESSION['sepet']['adet'][$uniqid]+$_POST['adet'];
                    $_SESSION['sepet']['key'][$uniqid]          = $uniqid;
                    echo 2;
                  }
            }else{
              echo 1;
            }
        }else{
          echo 1;
        }
    }else if($_POST['islem'] == 'listele'){
      if(@count($_SESSION['sepet']['key']) > 0){
        $toplam = 0;
        foreach ($_SESSION['sepet']['key'] as $key) {

          $urunquery = $db->prepare("SELECT * FROM urun where id=:id LIMIT 1");
          $urun = $urunquery->execute(array(":id"=>$_SESSION['sepet']['urun_id'][$key]));
          $urun = $urunquery->fetch(PDO::FETCH_ASSOC);

          $urunimg = $db->prepare("SELECT * FROM urun_img where urun_id=:urun_id LIMIT 1");
          $uimg = $urunimg->execute(array(":urun_id"=>$_SESSION['sepet']['urun_id'][$key]));
          $uimg = $urunimg->fetch(PDO::FETCH_ASSOC);

          echo '<div class="notifications__list">
                  <a class="notifications__item" href="urun/'.$urun['sef'].'">
                   <div class="notifications__ava">
                  <img class="notifications__pic" src="upload/'.$uimg['img'].'">
                  </div>
                  <div class="notifications__details">
                  <div class="notifications__line">
                  <div class="notifications__user">'.$urun['baslik'].'</div>
                  <div class="notifications__time">'.$_SESSION['sepet']['adet'][$key].' Adet</div>
                  </div>
                  <div class="notifications__text"><span class="notifications__project">'.fiyat($urun['fiyat'] + $alt_secenek_fiyat).' TL</span></div>
                  </div>
                  </a>
                </div>';

          $toplam += $_SESSION['sepet']['adet'][$key] * ($urun['fiyat']);
        }

        echo '<a href="index.php">
                  <button class="widget__btn btn btn_purple " style="margin: 5px;" tabindex="0">Alışverişe Dön </button>
                </a>
                <a href="sepet">
                <button class="widget__btn btn btn_purple " tabindex="0">Satın Al</button>
              </a>';
      }else{
        echo '<center><div class="notifications__user">Sepetinizde Ürün Bulunmuyor</div></center>';
      }
    }else if($_POST['islem'] == 'sepet_sil'){
        $uniqid = $_POST['id'];
        unset($_SESSION['sepet']['urun_id'][$uniqid]);
        unset($_SESSION['sepet']['adet'][$uniqid]);
        unset($_SESSION['sepet']['key'][$uniqid]);
        echo 1;
    }else if($_POST['islem'] == 'sepet_sayisi'){
        echo @count($_SESSION['sepet']['key']);
    }else if($_POST['islem'] == 'favori-ekle'){

      $uniqid = $_POST['urun_id'];
      $_SESSION['favori']['urun_id'][$uniqid]      = $_POST['urun_id'];;
      $_SESSION['favori']['key'][$uniqid]          = $uniqid;
      echo 1;
    }else if($_POST['islem'] == 'favori-sil'){
        $uniqid = $_POST['urun_id'];
        unset($_SESSION['favori']['urun_id'][$uniqid]);
        unset($_SESSION['favori']['key'][$uniqid]);
        echo 1;
    }else if ($_POST['islem'] == 'adet-guncelle') {
       $uniqid = $_SESSION['sepet']['adet'];
       $_SESSION['sepet']['adet'][$uniqid]         = $_SESSION['sepet']['adet'][$uniqid]+$_POST['adet'];
    }

  }

 if($_POST['islem'] == 'favori_sayisi'){
    echo @count($_SESSION['favori']['key']);
  }
Cevap yaz
Cevaplar (1)
hasanablak
803 gün önce

Javascriptde isteği post olarak atmışsın, datalar gelmiş; datalar geldikten sonra dataları kullanmak yerine sayfayı yeniliyorsun.

Yaptığın metodla XHR isteği atıyorsun yani sayfa yenilenmeden arkaplanda data yüklüyorsun şuanki sayfaya, daha sonrasında da bu metod sana yeni dataları getirmişken

gidip sayfayı yeniliyorsun. Hal böyle olunca post.php sayfasına gönderdiğin dataların hiçbir anlamı olmuyor

Javascripti komple kaldırıp dataları normal form kullanarak göndermen sorunu çözebilir

eğer illa da javascript kullanmak istiyorsan sayfayı yenilemek yerine console.log diyerek succesfull'da x'i yazdırmayı dene