Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите вывести блок повторно... (https://javascript.ru/forum/events/21018-pomogite-vyvesti-blok-povtorno.html)

KingStar 25.08.2011 21:49

Помогите вывести блок повторно...
 
Всем привет! Сразу скажу, что в JS полный ноль. Нашел на просторах инета скрипт, который позволяет подгружать выпадающий список из БД, и выводит рядом следующий с данными, кот. соответствуют первому.

например 1 список: Страна, второй - регион, третий - город и т.д.


<form action="" method="post">
  
    <select name="drop_1" id="drop_1">
    
      <option value="" selected="selected" disabled="disabled">Select a Category</option>
      
      <?php getTierOne(); ?>
    
    </select> 
    
    <span id="wait_1" style="display: none;">
    <img alt="Please Wait" src="ajax-loader.gif"/>
    </span>
    <span id="result_1" style="display: none;"></span>
    <span id="wait_2" style="display: none;">
    <img alt="Please Wait" src="ajax-loader.gif"/>
    </span>
    <span id="result_2" style="display: none;"></span> 
  
</form>


$(document).ready(function() {
	$('#wait_1').hide();
	$('#drop_1').change(function(){
	  $('#wait_1').show();
	  $('#result_1').hide();
      $.get("func.php", {
		func: "drop_1",
		drop_var: $('#drop_1').val()
      }, function(response){
        $('#result_1').fadeOut();
        setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
      });
    	return false;
	});
});

function finishAjax(id, response) {
  $('#wait_1').hide();
  $('#'+id).html(unescape(response));
  $('#'+id).fadeIn();
}
function finishAjax_tier_three(id, response) {
  $('#wait_2').hide();
  $('#'+id).html(unescape(response));
  $('#'+id).fadeIn();
}


При вставке этого всего добра на странику, все прекрасно работает, но при повторной и последующей вставке - список не подгружается, в итоге из всех работает толко первый :( Плиз, помогите, в чем может быть проблема???

yashka525 25.08.2011 23:57

Может id у Вас повторяется? На каждый блок нужен свой id.

melky 26.08.2011 00:14

Цитата:

но при повторной и последующей вставке
вставке чего?

KingStar 26.08.2011 00:50

Цитата:

Сообщение от yashka525 (Сообщение 122536)
Может id у Вас повторяется? На каждый блок нужен свой id.

Нет, сам селект вызывается функцией PHP, и он у нее отличается от второго, третьего и т.д.

т.е. вот так:

Select(31);


по этому ID и идет выборка из базы и заполняется первый список, и далее при выборе в селекте появляется следующий...

Допустим, если я допустим вставил Select(1); - список работает как часики, если еще дополнительно ставлю ниже Select(2);, то первый список этого селекта заполняется, но при выборе не идет подгрузка следующих данных, при том, что Select(1); работает как и должно.

Если даже учесть, что может где-то совпал ID блока, то по логике вещей, при выборе во втором он должен погрузится в блок первого, и результат будет просто в другом месте, но он молчит как партизан (((

KingStar 27.08.2011 22:50

Никто не в курсе???

Андрей Параничев 28.08.2011 23:50

Не уверен, но возможно у вас получается ситуация, что те элементы, которые указаны внутри js-функции обработчика события, "жестко" указаны?

У вас при повторной вставке первый ваш код работает нормально, а последующие при выборе из первого списка изменяют списки из первой группы списков? Если да, то проверьте, что все идентификаторы в JS-скрипте указывают на нужные элементы.

KingStar 30.08.2011 16:01

Цитата:

Сообщение от Андрей Параничев (Сообщение 123140)
Не уверен, но возможно у вас получается ситуация, что те элементы, которые указаны внутри js-функции обработчика события, "жестко" указаны?

У вас при повторной вставке первый ваш код работает нормально, а последующие при выборе из первого списка изменяют списки из первой группы списков? Если да, то проверьте, что все идентификаторы в JS-скрипте указывают на нужные элементы.

В том то и дело, что работает только первая вставка (с подгрузкой своих списков), а вторая и последующие выводят только начальный список своей вставки, дальнейшей подгрузки никакой вообще


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