2013-10-26 114 views
1

我是jquery和ajax的新手。如何重新運行/刷新包含php腳本的div

我的代碼基本上是調用ping.php腳本與打印服務器最多的,如果else語句或向下創建我的服務器的儀表盤的fsockopen /服務 目前當我加載的頁面調用打印出結果其中一臺服務器上或下在瓷磚中。 (使用merto.js學習和玩耍)

我遇到的問題是,我掙扎的是,我想刷新DIV說每3秒刷新PHP腳本

<div class="tiles red"> 
    <div class="live-tile" id="tile1">   
     <div><?php include"ping1.php"; ?></div>   
    </div> 
</div> 

我嘗試使用以下,但我必須做錯了什麼。

function startActivityRefresh() { 
    timer = setInterval(function() { 
     $("tile1").load('ping1.php'); 
    }, seconds*1) 

即使我的實驗是相當簡單的,我不想簡單地刷新整個頁面

我已經上4220不是殺死它關閉,幾秒鐘後創建一個可用的端口進行了測試。

感謝

回答

0

如果你只希望檢查服務器是否是漲還是跌,我會建議使用只是一個小.ajax()(在演示.get()使用簡寫)調用,而不是.load()

這是我的status.php劇本的樣子。

<?php 

// ping google. 
$server = fsockopen('173.194.46.64', '80'); 

if ($server) { 
    echo 'Online'; 
    fclose($server); 
} else 
    echo 'Offline'; 

我ping谷歌。將IP更改爲您的服務器。

這裏是我的Ajax調用看起來像

function checkServerStatus() { 
    var status = $('#tile1'); // your element 

    if (window.console && window.console.log) 
     console.log('Checking server for status.'); 

    $.ajaxSetup({ 
     cache: false 
    }); 

    $.get('status.php') 
    .done(function (e) { 
     // let's suppose "e" will return "Online" or "Offline" 

     // remove online and offline classes 
     status.removeClass('status-offline status-online'); 

     // add a class if offline or online. 
     switch (e) { 
      case 'Online': 
       status.addClass('status-online'); 
       break; 
      case 'Offline': 
       status.addClass('status-offline'); 
       break; 
     } 

     // set status text 
     status.text(e); 

     // check status every 5 seconds 
     setTimeout(function() { 
      checkServerStatus(); 
     }, 5000); 
    }) 
    .fail(function (e) { 
     if (window.console && window.console.log) console.log(e); 
    }); 
} 

// let's rock! 
checkServerStatus(); 
+0

感謝丹尼斯它的工作我可以看到status.php再次被調用但是在刷新後我的div消失檢查螢火蟲我通知刷新前'

' '
Online
''
Online
' '
' – cmos99

+0

我已經整理出類的問題我怎樣才能得到該標籤刷新後正確生成? – cmos99

+0

好的我已經整理出div標籤的問題,但服務停止時服務器狀態不會從在線更改爲離線 – cmos99

0

您已經<div class="live-tile" id="tile1">

定義的ID,並呼籲通過$("tile1")這是不對的,你需要#,並通過類來獲取元素的ID來獲取元素,你需要.

$("#tile1").load('ping1.php') 

.load()需要url 包含請求發送到的URL的字符串$("#tile1").load(' your url to ping1.php')

+0

謝謝你的建議,我所做的更改'$( 「#tile1」)。負載( '/ ping1.php')',但它不似乎有幫助 – cmos99