Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [javascript] Problem z wartością pola w formularzu, Przepisanie wartości pola w formularza podrzędnego do formularza nadrz
Quester
post 15.02.2007, 00:10:10
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 24.03.2002
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam serdecznie !

Biedzę się nad problemem już kilka godzin, a na forum nie odnalazłem rozwiązania mojego problemu, więc proszę Was o pomoc:

Mam dwa pliki:

1. W pierwszym formularz nadrzędny:
  1. <form action="edit.php" method="post" id="form1" name="form1">
  2. <input type="text" name="name" id="name" disabled="disabled">
  3. ...
  4. </form>


2. W drugim pliku formularz podrzędny:
  1. <form action="java script:window.opener.document.forms.form1.elements.name.value=go.name.value" id="go" onsubmit="window.close()">
  2. <input type="text" name="name" id="name">


Planowane działanie jest następujące: W pliku 1 pojawia się formularz ze wszystkimi polami oznaczonymi jako disabled oraz link do formularza podrzędnego. W pliku 2 formularz podrzędny który po uzupełnieniu wartości przekaże je do odpowiednich pól formularza nadrzędnego. W obecnej, przytoczonej powyżej postaci działa to tylko w IE natomiast w FireFox i Opera nie chce funkcjonować.
Będę wielce zobowiązany za wskazanie rozwiązania problemu ponieważ z pewnych względów muszę zrobić taką właśnie dziwaczną kombinację.
Z góry dziękuję za każdą wskazówkę.

UPDATE:

Udało mi się samodzielnie znaleźć rozwiązanie problemu.

Poniżej podaję rozwiązanie dla tych, którym przyjdzie do głowy taka sama "głupota" jak mnie smile.gif

Plik 1: funkcja change() w sekcji HEAD wywoływana w pliku 2 + formularz o id="form1"

  1. function change(NewValue, InputID)
  2. {
  3. var t = document.form1;
  4. t.elements[InputID].value = NewValue;
  5. }



Plik 2:
  1. <body onunload="window.opener.parent.change(document.forms.under.elements.val.value, 0);">
  2. <form action="java script:window.close()" id="form">
  3. <input type="text" name="val" id="val">
  4. </form>


Nie jestem przekonany co do poprawności tego rozwiązania biorąc pod uwagę słabą znajomość JS ale takie rozwiązanie działa zarówno pod IE jak i FF i Opera.

Ten post edytował Quester 15.02.2007, 00:10:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
gekon
post 16.02.2007, 05:41:53
Post #2





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

Ostrzeżenie: (0%)
-----


Po pierwsze: jeżeli formularze mają id to nie łatwiej jest wyłuskiwać je własnie po id?

  1. window.opener.document.getElementById('form1');


Po drugie: zainteresuj się przechwytywaniem zdarzeń, bo aż strach patrzeć na ten Twój kod. Albo skorzystaj z jakiegoś frameworka dla JS, praca stanie się przyjemniejsza.

Ten post edytował gekon 16.02.2007, 17:17:37


--------------------
Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ
Go to the top of the page
+Quote Post
Quester
post 21.02.2007, 21:56:46
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 24.03.2002
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Dzięki za wskazówki. Jako początkujący bardzo doceniam, że zechciałeś naprowadzić mnie na lepszy trop smile.gif

Witam... jednak poproszę o dodatkowe wskazówki w postaci naprowadzenia mnie na właściwy tok myślenia, bo mimo tego, że szperam w sieci w poszukiwaniu sensownych materiałów dla laika, to nie mogę sobie dać rady... problem polega na tym, że moje nieprofesjonalne rozwiązanie nie działa w IE7 sad.gif Chciałbym skorzystać z JS jednorazowo, więc interesuje mnie najprostsze możliwe rozwiązanie ale bazujące na własnych funkcjach (bez framework'ów)
Pomóżcie proszę... z góry thx.

Ten post edytował Quester 21.02.2007, 21:59:10
Go to the top of the page
+Quote Post
gekon
post 22.02.2007, 02:19:38
Post #4





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

Ostrzeżenie: (0%)
-----


Po ang: http://onlinetools.org/articles/unobtrusiv...t/chapter4.html.

Dodam jeszcze, że możesz zrobić funkcję, która będzie obsługiwać wysyłanie formularza i zamykanie pop-upa; w action natomiast ustaw alternatywę dla tych którzy nie mają JS (są tacy). Może wyglądać tak: User wysyła formularz, a ty odsyłasz go do strony, z której otworzył pop-upa, wstawiając to co wpisał w odpowiednie miejsce.

Ten post edytował gekon 22.02.2007, 02:25:05


--------------------
Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:47