Небольшой скрипт - подскажите как поправить
Привет всем! Есть такая проблема. Из Базы Данных на страницу php-циклом вывожу блоки информации. Вот таким макаром
<?php for ($i=0; $line = mysql_fetch_assoc($result); $i++) { //тут HTML блока, он ненужен echo '<a class="sfp" href="test.php?id=' . $line['id'] . ' ">link</a>'; echo '<div id="test"></div>';//сюда нужно вставлять результат клика по ссылке link } ?> Вот код скрипта var $j=jQuery.noConflict(); $j(document).ready(function() { $j('a.sfp').click( function() { var params = $j(this).attr('href').split('?'); jQuery('#loading').show(); $j.ajax({ type: "GET", url: "test.php", data: params[1], success: function(html){ $j("#test").html(html); jQuery('#loading').hide(); } }); return false; }); }); Подскажите, как сделать, чтобы скрипт понимал, что если клик произошел по ссылке в одном блоке, то и слой test обновлялся только в этом блоке. |
echo '<div id="test"></div>' Вставляете пяток элементов с одним id? О_о |
|
Так в том то и дело, что не знаю как правильно сделать)) ну, как вариант сделат
echo '<div id="'. $id . '"></div>'; а как JS заставить понимать, в каком слое выводить ответ сервера? $j("$id").html(html); он не понимает.. мож в синтаксисе ошибка? |
Во первых id должны быть уникальными, не делайте на странице несколько элементов с одинаковым id.
Во вторых вот эту строку var params = $j(this).attr('href').split('?'); лучше замените на регулярку. (function($){ $(function(){ $('.sfp').click(function(){ var params = $(this).attr('href').split('?'); $('#loading').show(); $.ajax({ type: "GET", url: "test.php", data: params[1], success: function(html){ $(this).next('div').html(html); $('#loading').hide(); } }); }); } })(jQuery) |
Цитата:
|
var $j=jQuery.noConflict(); |
Часовой пояс GMT +3, время: 18:25. |