0

我正在尝试从特定 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 秒的间隔在名为“content_data”的 DIV 中检索此信息,那么 jquery/ajax 代码应该是什么?非常感谢!

4

2 回答 2

1

您可以将 lastCodes() 函数的内容放在一个空的 PHP 文件中,我们称之为 lastCodes.php。

然后在要检索数据的页面上使用 JQuery 的加载功能

<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>
于 2012-07-29T00:09:03.520 回答
0

您只需使用 setInterval() 函数每 5 秒(5000 毫秒)加载页面内容

</div>

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

我可以看到你有一个函数,所以你不妨调用它。如果这不起作用,请尝试将您的代码放在函数之外。

lastCodes();

确保它实际上改变了它的内容并且你调用的页面确实有效,你可以通过访问页面本身来测试它,看看它是否有任何输出。

于 2012-07-29T01:13:22.847 回答