0

php/while ループを使用して、mysql の結果を div に出力します。jqueryプラグインまたはコードを使用して、リンク、ボタンをクリックした後、この結果を更新する必要があります。リンクをクリックした後のデザインが改善され、ユーザーはロード中のメッセージを確認し (しばらくお待ちください)、jquery/php で新しい結果を出力します (refresh div )。これは可能ですか?これを行う方法はありますか?

私のdivは:

<a class="click" href="#"> Link TO refresh Div </a>
<div class="messagelist">
<?PHP $result=mysql_query("select * from messages where id<'$lastmsg' order by id desc limit 20");
$count=mysql_num_rows($result);
<div class="commentbox">
while($row=mysql_fetch_assoc($result))
{?>
<li>
<?php echo $row['id'] . ' #' . $row['date'] . ' / ' . $row['comment']; ?>
</li>
<?PHP } ?>
</div>
</div>

NOTE : I dont need To Load From Jquery External File Methods . thanks

4

3 に答える 3

2

あなたのスクリプトは機能しません。PHP と HTML を混在させています。

$count=mysql_num_rows($result);
<div class="commentbox"> /*THIS IS WRONG*/
while($row=mysql_fetch_assoc($result))

これがあなたが望むものだと思います:

リストのみを出力する新しい PHP ファイルを作成します。たとえば、 と呼びlist.phpます。

メインファイルの内容:

<a class="click" href="#"> Link TO refresh Div </a>
<div class="messagelist">
<div class="commentbox">
<ul>
<?PHP $result=mysql_query("select * from messages where id<'$lastmsg' order by id desc limit 20");
$count=mysql_num_rows($result);
while($row=mysql_fetch_assoc($result))
{?>
<li>
<?php echo $row['id'] . ' #' . $row['date'] . ' / ' . $row['comment']; ?>
</li>
<?PHP } ?>
</ul>
</div>
</div>

の内容list.php:

<?PHP $result=mysql_query("select * from messages where id<'$lastmsg' order by id desc limit 20");
$count=mysql_num_rows($result);
while($row=mysql_fetch_assoc($result))
{?>
<li>
<?php echo $row['id'] . ' #' . $row['date'] . ' / ' . $row['comment']; ?>
</li>
<?PHP } ?>

<head>これをメイン ファイルの一部に追加します。

<script type="text/javascript">
$(function(){
    $('.click').on('click', function(e){
        e.preventDefault();
        $('.messagelist').text('Please wait...');
        $('.messagelist').load('list.php');
    });
});
</script>

コンテンツをロードします。

于 2012-04-07T12:55:31.557 に答える
2

を要素に追加onclickします。

<a onclick="loadPhp();">Reload php function</a>

javascript関数を作成します。

function loadPhp(){
    //set a variable for the php function
    var func = <?php yourphpfunction();?>;
    //append the php function results to a div using jquery
    $(element).html(func); 
}
于 2012-08-28T22:19:11.997 に答える
0

必要なことを行うには、Ajax を使用する必要があります。

1. mysql の結果、以下で作成される html スニペットを含む別の PHP ファイルを作成します。

messages.phpの内容:

<?PHP $result=mysql_query("select * from messages where id<'$lastmsg' order by id desc limit 20");
$count=mysql_num_rows($result);
<div class="commentbox">
<ul>
while($row=mysql_fetch_assoc($result))
{?>
<li>
<?php echo $row['id'] . ' #' . $row['date'] . ' / ' . $row['comment']; ?>
</li>
</ul>
</div>
<?PHP } ?>

2.jQuery を使用している場合、ajax-requestは非常に単純です。以下を現在のページに追加します (それ以外の場合は現在のページをそのままにしておきます)。

$(document).ready(function () {
    $('.click').on('click', function (e) {
        e.preventDefault();
        $('.messagelist').html('Please wait...');
        $.ajax({
            type : 'GET',
            url : 'messages.php',
            dataType : 'html',
            success : function (response) {
                $('.messagelist').html(response);    
            }
        });
    });
});

上記のコードはテストしていませんが、動作するはずです。

于 2012-04-07T12:54:22.860 に答える