Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > JavaScript, DOM/DHTML > работа с фреймами


Автор: Voice 16.08.04, 12:52
у мя есть 2 фрейма - в верхнем рисуется таблица входа (имя. пароль, кнопка "вход"), в нижнем остальные данные.
при нажатии "вход" в верхнем фрейме, логин с паролем пишутся в кукис.
Мне бы надо бы обновлять оба фрейма при нажатии на "Вход". Подскажите, плз, как бы это сделать? (оба фрейма работают с asp)

Автор: Mastilior 16.08.04, 15:45
Идея такова.

JavaScript:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    function func1()
    {
    // при субмите формы на frame1 мы перезагружаем и frame2
    top.frames["frame2"].location.reload();
    }


Кнопочка:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    <form target=frame1 onsubmit="func1();">
    ...
    <input type=submit value="Сабмит!">
    ...
    </form>

Автор: Voice 23.08.04, 12:06
а как бы еще и параметры передать?
например в первом фрейме на форме, где лежит и сам submit, у меня есть несколько полей. При нажатии на этот submit второй фрейм обновляется, но параметров при нем никаких нету из полей первого фрейма.
Т.е при обновлении второго фрейма по показанному выше методу (спасибо Mastilior'у) этому самому второму фрейму должен бы передаться url вида, например, такого:
http://bla-bla-bla/ggg.asp?qwe=rty&uio=p
где qwe и uio это поля на первом фрейме (где лежит кнопка submit), а rty и p - это соотв. их значения

Автор: Mastilior 23.08.04, 12:57
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    <form target=frame2 method=get ...

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    top.frames["frame1"].location.reload();

Автор: Voice 23.08.04, 13:21
дык у меня и стои method=get
только почему-то не передается ничего :wall:

Автор: Mastilior 23.08.04, 14:19
Проверь: target равно frame2?

Автор: Malicious Babai 24.08.04, 00:21
С технологией ASP знаком исключительно понаслышке, а на JS передачу данных из формы одного документа в другой рганизовывал следующим образом: предположиму тебя в форме f1 3 text-поля (te1, te2, te3)
текст функции в доке №1 :
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    function SendForm() {
    ..... проверка формы на условия...
    f1.te1.value=escape(f1.te1.value);
    f1.te2.value=escape(f1.te2.value);
    f1.te3.value=escape(f1.te3.value);
    f1.submit();
    }


а вот что будет в тэге Script в разделе HEAD 2-го документа:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    var ex_url=location.search.substring(1);
    var param = new Array();
    var param = ex_url.split('&');
    var values = new Array();
    for (i=0; i<param.length;i++) {
       var b = param[i].split('=');
       values[b[0]] = unescape(unescape(b[1]));
    }


обращение к значениям, полученнным из формы, идет через обращение к массиву values, т.е., например, values["te1"]

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)