обновить динамический php div с помощью jquery

Я печатаю результат 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

Ваш скрипт не может работать. Вы смешиваете 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> в <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 } ?> в <?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> 

для загрузки содержимого.

Добавьте 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); } 

Чтобы сделать то, что вы хотите, вам нужно использовать 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 } ?> в <?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); } }); }); }); 

Я не тестировал код выше, но он должен работать.