簡體   English   中英

Ajax,PHP,MySQL檢索數據

[英]Ajax, PHP, MySQL retrieve data

我試圖自動從特定DIV中的mysql服務器檢索數據,而無需手動刷新網頁。

我的PHP代碼是:

function lastCodes(){
    include('mysql.php');
    include('config.php');

echo "<div id='content_data'>";

    $get = mysql_query("SELECT * FROM scripts ORDER by date_added DESC");
    if(mysql_num_rows($get)>0){
        while($row = mysql_fetch_assoc($get)){

            $get2 = mysql_query("SELECT * FROM accounts WHERE username = '$row[s_owner]'");
                while($red = mysql_fetch_assoc($get2)){

            echo "<table>
                        <tr>
                                <td width='22px'>";
                        if(!empty($red['avatar'])){
                            echo "<center>
                                        <img src='$red[avatar]' style='width: 52px; height: 52px; margin-left: -30px; border: 2px solid #fff;' title='$row[s_owner]'/>
                                    </center>
                                </td>";
                        } else {
                            echo "<td width='22px'>
                                        <center>
                                            <img src='/theme/$tema/icons/empty_avatar.png' style='width: 52px; height: 52px;' title='$row[s_owner]'/>
                                        </center>
                                    </td>";
                        }       

            echo "<td>
                        <a style='font-family: IndexName; color: #000; font-size: 14px; margin-left: 5px;'><b>$row[s_owner]</b> написа <a title='$row[s_name], Категория: $row[s_category].' href='#' style='text-decoration: none;'>нов код</a> <a style='font-family: IndexName; color: #000; font-size: 14px; margin-right: 10px;'>в $row[date_added]</a>
                    </td>
                    </tr>
                    </table>";

        }

        }

    }

echo "</div>";

}

如果我想在5秒鍾的間隔內在DIV中檢索此信息(稱為“ content_data”),應該是jquery / ajax代碼嗎? 非常感謝!

您可以將lastCodes()函數的內容放在否則為空的PHP文件中,我們將其稱為lastCodes.php。

然后在要檢索數據的頁面上使用JQuery的load函數

<div id="divTarget"></div>
<script type="text/javascript">
    $("#divTarget").load("lastCodes.php");
</script>

但是請記住,這種編碼方式會很快變得混亂。 我建議您嘗試許多可用的出色模板系統。 干凈的代碼不是必需的,但是如果沒有干凈的代碼,則需要一些紀律以使邏輯脫離視圖代碼。

當您對其中一種感到滿意時,您可以走得更遠,並使用Javascript在前端嘗試模板系統,例如Handlebars。 使用其中之一,您將能夠編寫干凈的代碼並使用JSON發送數據,這將減少HTTP響應的大小,同時使數據更易於在其他情況下使用,而不僅僅是將其呈現為HTML。

編輯:每5秒更新一次數據:

<script type="text/javascript">
  window.setInterval(function() {    
     $("#divTarget").load("lastCodes.php");
  }, 5000);
</script>

您只需要使用setInterval()函數每5秒(5000毫秒)加載一次頁面內容

</div>

<script src="jquery.js"></script>
<script>
setInterval(function(){
   $('#container').load('page.php');
}, 5000);
</script>

我可以看到您有一個函數,因此不妨調用它。 如果這樣不起作用,請嘗試將您的代碼放在函數之外。

lastCodes();

確保其實際更改了其內容,並且所調用的頁面確實有效,您可以通過訪問頁面本身並查看其是否有輸出來對其進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM