刷新使用jQuery动态PHP DIV(refresh dynamic php div using

2019-09-16 09:24发布

我打印的MySQL结果到DIV使用PHP / while循环。 现在我需要重新整理结果点击任何链接,按钮后使用jQuery插件或代码。 点击链接后更好的设计,用户看到任何加载消息(请稍候)和jQuery / PHP的打印新的结果(刷新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

Answer 1:

你的脚本不能正常工作。 你是混合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>

加载的内容。



Answer 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); 
}


Answer 3:

要做到你想要什么,你需要使用Ajax。

1.创建一个单独的PHP文件包含你的mysql结果,下面是创建的HTML片段。

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请求是非常简单的。 以下内容添加到您的当前页面(否则你离开当前页面,因为它是):

$(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);    
            }
        });
    });
});

我没有测试上面的代码,但它应该工作。



文章来源: refresh dynamic php div using jquery