2012-07-28 96 views
0

我试图在没有手动刷新网页的情况下从特定DIV中的mysql服务器自动检索数据。Ajax,PHP,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>"; 

} 

应该是什么在我的情况了jQuery/Ajax代码,如果我想检索这些信息在DIV称为“content_data”在5秒的间隔?非常感谢!

+6

谷歌“ajax教程”。如果你想使用jQuery来让它更容易,谷歌“jQuery教程”。 – 2012-07-28 23:41:23

回答

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> 
+0

好的,但它加载一次,5秒后不重新加载,并且不刷新新数据。 – Khanasyubighi 2012-07-29 00:26:38

+0

尝试此: <脚本类型= “文本/ JavaScript的”> window.setInterval(函数(){ $( “#divTarget”)负载( “lastCodes.php”); 。},5000); – 2012-07-29 00:34:53

+0

谢谢,伙计们,我得到它的工作,现在我明白了代码! – Khanasyubighi 2012-07-29 09:42:14

0

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

</div> 

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

我可以看到你有一个功能,所以你不妨称它。如果这不起作用,那么尝试将代码放在函数之外。

lastCodes(); 

确保其真正改变它的内容和你的确调用页面的作品,你可以通过访问网页本身的测试,看看它是否有任何输出。