v2.5.2
Giriş yap

Sayfa yenilemeden veri güncelleme

krygnc
1,027 defa görüntülendi

Merhaba bir siteden kendi siteme veri çekiyorum fakat tek sorun veriyi sayfa
yenileme yapmadan güncellemiyor yani status.php içerisine veri çektiğim site
kodlarını ekledim ve kendi anasayfama ise div tagları arasına alttaki kodları ekledim
fakat dediğim gibi sitedeki veri değiştiğinde ben F5 atmak zorunda kalıyorum

<php>

    <div> <h4><?php echo $status1->nodeValue;?> </h4> </div>
                          
   

</php>

Denediğim diğer kodlar

<php>

   <script>
        $(document).ready(function() {
        $("#istek").load("status.php");
        var refreshId = setInterval(function() {
        $("#istek").load('status.php?randval='+ Math.random());
        }, 3000);
        });
   </script>
     
   <div id="istek"> <h4><?php echo $status1->nodeValue;?> </h4> </div>
                          
    

    

</php>

Cevap yaz
Cevaplar (3)
aykhan
90 gün önce

anladığım kadarıyla istediğin şey canlı sayfa gibi bişey olmalı. bunu saf phpde yapman biraz teknik bilgi gerektirir, yeni başladıysa bu konular sana biraz zor gele bilir. önerim laravel kullan, laravel broadcasting sayesinde veri güncellemesi yapa bilirsin. ama çektiğin veri başka bir siteden api ile çekiliyosa, o zaman api çektiğin yeri biraz araşdır orada webhook özelliği varmı diye kontrol et, bu özellik sayesinde senin sorğu atmana gerek kalmaz api servisi veri değiştiğinde sana bildirim gönderir. eğer yoksa devamlı olarak her 2 saniyyede bir kendin kontrol amaçlı sorğu atman gerektirir ki, buda gelecek olan veri seti büyükse kullanıcı ramını yer bitirir, kasma sorunları ola bilir. <?php $data ?> kullanarak anlık değişiklik bekleme çünki php senkron olarak çalışır. anlık veri güncellemesi için javascript kullanman lazım.

apobozdag
93 gün önce

Amacımız status.php içindeki veriyi sayfa yenilemeden (AJAX ile)
güncellemek.
Senin denediğin yöntem aslında doğru ama birkaç ufak hata var:

  1. <php> tagı yerine <?php ?> kullanmalısın. (Seninki HTML'de
    geçersiz oluyor).\
  2. div içine PHP koymana gerek yok, çünkü zaten status.php
    içeriğini AJAX ile getiriyorsun.\
  3. jQuery'nin çalışabilmesi için sayfanda jQuery'nin yüklü olduğundan
    emin olmalısın.

✅ Çalışır Örnek

<!-- index.php -->
<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>Status Güncelleme</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

   <div id="istek">
       Yükleniyor...
   </div>

   <script>
       $(document).ready(function() {
           // İlk yükleme
           $("#istek").load("status.php");

           // Her 3 saniyede bir tekrar yükle
           setInterval(function() {
               $("#istek").load("status.php?randval=" + Math.random());
           }, 3000);
       });
   </script>

</body>
</html>

status.php

<?php
// status.php
// Örnek: dış siteden veri çekiyorsun
// $status1 değişkeni burada hazırlanıyor
echo "<h4>" . $status1->nodeValue . "</h4>";
?>
database
130 gün önce

İsteğini biraz daha açar mısın?