Небольшой скрипт - подскажите как поправить
Привет всем! Есть такая проблема. Из Базы Данных на страницу 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, время: 13:10. |