• 21-02-2017, 15:12:40
    #1
    Arkadaşlar merhaba, terzi kendi söküğünü dikemez misali bir ufak problemim var. Daha doğrusu yapmak istediğimi yapamadım. Bu konuda javascript taraflı da bir bilgi gerekiyor sanırım.

    <?php
    
    @header('Content-Type: text/html; charset=utf-8');
    error_reporting(0);
    session_start();
    require_once('./lib/ez_sql_core.php');
    require_once('./lib/ez_sql_pdo.php');
    
    $db_name = 'admin_****';
    $db_user = 'admin_****';
    $db_pass = '*********';
    
    $db = new ezSQL_pdo('mysql:host=localhost;dbname=' . $db_name . '', '' . $db_user . '', '' . $db_pass . '');
    $db->query("SET NAMES 'utf8'");
    
    $getTweets = $db->get_results("SELECT * FROM `tweets` ORDER BY id DESC LIMIT 10");
    $_SESSION['lastID'] = $getTweets[9]->id;
    
    ?>
    <html>
    <title>Deneme - Anlık</title>
    <script src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
    <div>
    <p id="getTweets"></p>
    </div>
    <?php
    foreach ( $getTweets as $tweet )
    {
    	if ( !strstr($tweet->text, '@') AND !strstr($tweet->text, 'RT') )
    	{
    		$json = file_get_contents('https://publish.twitter.com/oembed?url=https://twitter.com/'.$tweet->screen_name.'/status/'.$tweet->id_str);
    		$json = json_decode($json);
    		if ( $json->html ){
    			echo stripslashes($json->html).'<br>';
    		}
    	}
    }
    ?>
    <script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
    <script src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <script>
    function getTweets()
    {
    	//var id = <?php echo $_SESSION['lastID']; ?>;
        $.post('./ajax/newTweet.php', '', function(alios){
            if ( alios.sonuc )
            {
                $('p[id=getTweets]').html(alios.sonuc);
            }
        }, 'json');
    }
    setInterval(function() {
        getTweets();
    }, 1000 * 30);
    getTweets();
    </script>
    </html>
    Veritabanına yeni eklenen veriyi buradaki javascript fonksiyonuyla çekmeye çalışıyorum ama beceremedim. İstediğim şey şu, anlık olarak veya belirli saniyede, fark etmez bu, veriyi kontrol edip anasayfaya ekleyecek.

    Ben bu işlemi session'a ekleyerek denedim olmadı. Bir türlü veriyi döndüremiyorum. Sanırım yöntem olarak da yanlış yaptığım.

    Kısa ve öz yardımcı olabilecek veya şu yöntemi dene diyecek var mı? Bir nevi realtime çalışacağım ama beceremedim.

    Şimdiden yardımcı olmaya çalışan herkese teşekkürler. (:
  • 21-02-2017, 15:42:19
    #2
    $('#updatePage').submit(function(event) {
        event.preventDefault();
        var form = $(this);
    
        $.ajax({
            url: "/path/to/script.php",
            data: form.serialize(),
            type: 'post',
            dataType: 'html',
            success: function(data) {
                $('table').html(data);
            },
            error: function(xhr, status) {
                alert("Sorry, there was a problem!");
            },
        });
    });
    şöyle bir fonksiyon buldum. Pek anlamam js'den ama çalışıyor diye belirtmişler.
  • 21-02-2017, 16:05:54
    #3
    javascript içinde session kullanamazsınız , basit olarak şu şekilde yapabilirsiniz

    Kullanıcı sayfayı açtığında uniq bir değer ile (time ve ip olabilir ) o andaki kayıt sayısını veritabanına kayıt edin ,

    bir tane fonksiyon yazıp belirli saniye aralıkları ile yeni kayıt sayısını gönderin sayfaya eğer kayıtlı değerden fazla ise son eklenen verileri bir sayfadan jquery append ile sayfaya ekletin.

    ArkaPlan();
    var timeout = setInterval(ArkaPlan, 100000);    
    function ArkaPlan () {		
    		$.ajax({
    			url: "dosya_ismi.php",
    			dataType: "text",
    			success: function(msg){
    				var json = $.parseJSON(msg);
    				if(json.SUANKI_KAYIT_SAYISI > $ILK_KAYIT_SAYISI){
    					// YENİ VERİLER EKLENMİŞ TEKRAR AJAX İLE BAĞLANARAK SAYFANIZA EKLETİN
    				}
    			}	
    		});
    }
    dosya_ismi.php dosyasından JSON ile SUANKI_KAYIT_SAYISI gönderin ve sayfa açıldığında $ILK_KAYIT_SAYISI değişkenine açıldığı andaki satır sayısını gömün.

    Umarım fikir açısından yardımcı olur.