Вход

Просмотр полной версии : UI Dialog как победить двойной вызов???


xela1980
18.12.2009, 22:17
Ребят объясните пожалуйста такую проблему. Хочу заполнять один дилог (виджет 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
в том то и дело, что не уничтожается, и ты можешь его еще раз открыть