我使用php / while循环将mysql结果打印到div中。现在我需要在点击任何链接,使用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
答案 0 :(得分: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>
加载内容。
答案 1 :(得分: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);
}
答案 2 :(得分:0)
要做你想做的事,你需要使用Ajax。
1.创建一个单独的PHP文件,其中包含您的mysql结果,即下面创建的html-snippet。
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);
}
});
});
});
我没有测试过上面的代码,但它应该有用。