v2.5.2
Giriş yap

Bildirim sistemi yaptım fakat yenileme yaparken sayfanın stili bozuluyor

oguzunbiri
280 defa görüntülendi

PHP AJAX ile bildirim sistemi geliştirdim sürekli olarak sayfa bozuluyor. Sayfa kodlarına baktığımda ise tüm stil ve js dosyalarının yenilenme süreci boyunca silinip geri geldiğini farkettim. Acaba sorun nedir?

jQuery kodları;

function loadDoc() {
    $.ajax({
        url: "ajax.php?option=bildirim",
        success: function(e)
        {
            $('#noti_number').html(e);
            $('#noti_numbera').html(e);
        }
    });
}

setInterval(loadDoc, 1000);

Yaşanan Sorunun Görselleri

Cevap yaz
Cevaplar (5)
oguzunbiri
492 gün önce

arkadaşlar çözdüm sorunu, ajax kullanmadan ve html yerine @aykhan arkadaşımın söylediği load fonksiyonunu kullandım şu şekilde;

function loadDoc() {
    $("#noti_number").load("ajax.php?option=bildirim");
}

setInterval(loadDoc, 1000);

sizi de bilgilendirmek istedim, teşekkürler

oguzunbiri
492 gün önce

@aykhan maalesef hocam benim noti_number içerine yazdırmam gerekiyor. html komutunu bu yüzden kullanıyorum. başka bir yolu var mı bilmiyorum.

aykhan
492 gün önce

Merhaba htm() yerine for ve ya foreachin üst divini yenileye bilirsiniz.
yani



function loadDoc() {
    $.ajax({
        url: "ajax.php?option=bildirim",
        success: function(e)
        {
            $("#noti_number").load(" #noti_number > *");
        }
    });
}

setInterval(loadDoc, 1000);

yukarıdaki kodda noti_number idsi foreachin dışında olması lazım yani eğer kodunuz aşağıdaki gibi ise


<table class="table">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">First</th>
      <th scope="col">Last</th>
      <th scope="col">Handle</th>
    </tr>
  </thead>
  <tbody id="noti_number">
   <? foreach($key as $k) { ?>
    <tr>
      <th scope="row">1</th>
      <td>Mark</td>
      <td>Otto</td>
      <td>@mdo</td>
    </tr>
    <? } ?>
  </tbody>
</table>


Tbodyi yenilemeniz lazimki döngü yeniden çalışsın tabiiki yukarıdaki kodun yazılışı yanlış ama kısadan anlatmak için hepsini yazmadım mantık doğru sadece

oguzunbiri
492 gün önce

@kartal maalesef hocam bahsettiğim şey ondan ziyade, bildirim sayısı güncelleniyor o konuda bir sorun yok. sorun ajax ile setinterval komutunu aynı anda kullandığım için sayfanın html kodlarını yeniliyor sürekli. bu da sayfa stilinin bozulup düzelmesine neden oluyor. ekteki videodan kontrol edebilirsiniz.

kartal
492 gün önce

jquery kullanmıyorum ama bildirimler ne ise ona uygun bir yöntem yapsan
mesele html() değilde javascriptte olduğu gibi
$('#noti_numbera').textContent = e;