0

Webページを手動で更新せずに、特定の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のload関数を使用します

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

ただし、このコーディング方法では、非常に高速に混乱する可能性があることに注意してください。利用可能な多くの優れたテンプレートシステムのいずれかを試してみることをお勧めします。クリーンなコードには必要ありませんが、コードがないと、ビューコードからロジックを除外するための規律が必要になります。

そして、それらの1つに慣れたら、さらに進んで、ハンドルバーなどのJavascriptを使用してフロントエンドでテンプレートシステムを試すことができます。それらの1つを使用すると、クリーンなコードを記述し、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 に答える