Я печатаю результат 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); } }); }); });
Я не тестировал код выше, но он должен работать.