Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   UI Dialog как победить двойной вызов??? (https://javascript.ru/forum/jquery/6741-ui-dialog-kak-pobedit-dvojjnojj-vyzov.html)

xela1980 18.12.2009 22:17

UI Dialog как победить двойной вызов???
 
Ребят объясните пожалуйста такую проблему. Хочу заполнять один дилог (виджет Dialog) то есть одно диалоговое окно
id="dialogTRGadd"
разным контентом в зависимости от условия
Но проблема в том что постоянно грузиться только выбранный первым контент То есть если первым сработало условие(код ниже)
TRG[1]==""
и я вижу
alert ('Есть только дата');
то потом даже
если срабатывает условие иначе и я вижу
alert ('Есть все данные')
то грузиться диалоговое окно и контент в него из первого условия, Это видно по title диалогов окна и дополнит alert-ам

К примеру первый раз я выбираю ситуацию у срабатывает условие в
if (TRG[1]=="")
я вижу
alert ('Есть только дата');
Дилог открывается с
title:"Запись пары для учителя"
и в итоге я вижу
alert ("Cработа аякс вставки даты и время остальное нужно выбрать выбрав время");
Это все правильно и как мне нужно.

Но...Затем я выбираю ситуацию для
else
. Вижу как и положено
alert ('Есть все данные');
И дальше начинаются чудеса
вместо
alert("Cработал аякс вставки даты и периода времени для случая где есть все данные")
затем
alert("Cработал аякс вставки комнат")
и других алертов из этого условия я вижу alert из первого условия
alert ("Cработа аякс вставки даты и время остальное нужно выбрать выбрав время");

и в итоге диалоговое окно выезжает с
title:"Запись пары для учителя"
хотя должно быть
title:"Запись пары для учителя_1",

и контентом заполненым для первого условия
И наоборот если я впервые захожу на сайт и выберу первым условие для элса то затем этот диалог вызывается и для ифа Пробовал дестроить диалог при close Такое ощущение что нужно уничтожить вызванный первым диалог чтобы запустить для другоого условия Или в чем же здесь дело?


ХТМЛ такой

<div id="dialogTRGadd">
        
        <div id="TRGinsert_pair"></div>
        
        

</div>


вызов функции такой

$("td#teach").live("dblclick",OPEN_DIALOG_ADD_PAIR_TRG);


сама функция такова

function OPEN_DIALOG_ADD_PAIR_TRG ( )
{
	
		
if (TRG[1]=="")
{
	 
	 		alert ('Есть только дата');
	  		
			
	 		$("#dialogTRGadd").dialog({ 
			 position: ["left","top"],
        	         title:"Запись пары для учителя",
	    	         hide: "slide",show:"slide",height:400,width:700, 
	     	         zIndex:999,
		         open: function(event, ui) {
		         	
					$.ajax({    
                			url:"ajax/teachers/insert_pair_to_teacher.php",
					data:qstring,
                			cache: false, 
                			success: function(html){ 
					 					   
					$("#TRGinsert_pair").html(html);
					
					alert ("Cработа аякс вставки даты и время остальное нужно выбрать выбрав время");
		
		 					       } 
  
  
                                           });	
		
      
	 
	                                 }
	  
	  
	  

	  }).dialog("open");	
	
				
}


else

{
					alert ('Есть все данные');			
	  	
					$("#dialogTRGadd").dialog(
					{ position: ["left","top"],
         				title:"Запись пары для учителя_1",
	     				hide: "slide",show:"slide",height:400,width:700, 
	     				zIndex:999,		 
                 			open: function(event, ui) {
		         		
					$.ajax({ 
                			url:"ajax/teachers/insert_pair_to_teacher.php",
					data:qstring ,
                			cache: false, 
                			success: function(html)
					{ 
					  
					 $("#TRGinsert_pair").html(html);
					  
         alert("Cработал аякс вставки даты и периода времени для случая где есть все данные");
					 		
					 $.ajax({ 
                                    		url: "ajax/teachers/return_TRG.php",
				    		data: qstring,				  	      
				    		cache: false, 
                                    		success: function(html){
					  
                                    		alert("Cработал аякс вставки комнат");
					 
				    		$("#roomsTRG").replaceWith('<select  id="roomsTRG" >'+html+'</select>');
					
                                                        		} 
                                       		});
		
		            
					$.ajax({ 
                                       		url: "ajax/teachers/return_TRG.php",
				       		data: qstring,				  	          
				       		cache: false, 
                                      		 success: function(html){
					 	alert("Cработал аякс вставки групп");
					 
				   		$("#groupsTRG").replaceWith('<select  id="groupsTRG" >'+html+'</select>');
				                    
 
                                         	} 
                                     		});
		
		              			alert("После аякса вставки комнат и групп");
					        
	
 					} 
  
  
                      			});	
		  
	 
	                               }/*Закрытие open: function*/
	  
	  

	  }).dialog("open");	
	
	
	
}/*Закрытие else */


}

x-yuri 19.12.2009 09:35

много букв. Ты можешь объяснить в чем у тебя проблема без "вот мой код, он не работает"? Например: "пытаюсь вызвать dialog для одного и того же элемента дважды, на второй раз диалог не появляется"

xela1980 19.12.2009 11:39

Cпасибо за то что откликнулся.Уже решил проблему. В каждом из условие в диалоге надо было прописать
close: function(event, ui) {

$("#dialogTRGadd").dialog('destroy');

}
Правда до конца не понимаю зачем его обязательно дестроить при закрытии??? Разве он не унчитожаестя Вообщем сделал так и перестало вызываться для разных последловательных условий одно и то же диалог окно.

x-yuri 19.12.2009 11:51

в том то и дело, что не уничтожается, и ты можешь его еще раз открыть


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