Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Небольшой скрипт - подскажите как поправить (https://javascript.ru/forum/events/25376-nebolshojj-skript-podskazhite-kak-popravit.html)

Volonter 03.02.2012 11:53

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

Serg_pnz 03.02.2012 12:09

echo '<div id="test"></div>'

Вставляете пяток элементов с одним id? О_о

Serg_pnz 03.02.2012 12:13

http://javascript.info/play/YeeK1

Volonter 03.02.2012 12:14

Так в том то и дело, что не знаю как правильно сделать)) ну, как вариант сделат
echo '<div id="'. $id . '"></div>';

а как JS заставить понимать, в каком слое выводить ответ сервера?

$j("$id").html(html);

он не понимает.. мож в синтаксисе ошибка?

Skipp 03.02.2012 12:17

Во первых 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)

Serg_pnz 03.02.2012 12:19

Цитата:

$j("$id").html(html);
j - эт что такое?

Volonter 03.02.2012 12:24

var $j=jQuery.noConflict();


Часовой пояс GMT +3, время: 18:25.