Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz w pop-up, formularz na warstwie - jak / czym to wykonać?
Insert
post 11.07.2011, 15:27:55
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 17.12.2007

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


Witam,

Mam dylemat. Wyobraźmy sobie formularz dodawania posta na blogu:
- tytuł (input text)
- treść (textarea)
- kategorie (tu lista multiselect)

Przy liście kategorii znajduje się też przycisk "dodaj nową kategorię", bo user chce sobie dodać nową bezpośrednio z poziomu dodawania postu. Zapewne najsensowniejszy będzie formularz otwierający się w okienku pop-up. Po submicie w tym formularzu okienko pop-up się zamknie (ajaksem zapiszę rekord), a na liście kategorii pojawi się ta nowo dodana (ajaksem pobiorę sobie aktualną listę kategorii).

Najchętniej użyłbym zwykłego javascriptowego pop-up. Pytanie - da się?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
webdice
post 11.07.2011, 15:29:03
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




jQuery UI - dialog.
Go to the top of the page
+Quote Post
vokiel
post 11.07.2011, 19:00:23
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Wiele skryptów typu lightbox oferuje opcję wczytania treści html i operowania na niej z wykorzystaniem ajax. Np taki prettyphoto


--------------------
Go to the top of the page
+Quote Post
Insert
post 13.07.2011, 00:01:35
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 17.12.2007

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


Powyższe rozwiązania z pewnością zadziałają (zrobiłem sobie przykładowo już na http://fancybox.net/, choć przyznam, że bardzo kiepsko się integruje z najnowszym jQuery, ten plugin wygląda już raczej na pół-martwy, więc przepiszę na jQuery UI::Dialog). Chciałbym jednak dla pewności dopytać - zwykły pop up w javascript też da radę? Chodzi mi o obsłużenie zdarzenia kliknięcia w submit (oczywiście w jquery), zapis danych z formularza pop-up (ajax jquery), wykonanie po tym wszystkim zassania danych na multiselect i window.close() - powinno chodzić, ale pytam dla pewności - robił ktoś coś takiego?

Moja niechęć do dodatkowych pluginów jest spowodowana koniecznością utrzymywania dodatkowego softu, który trzeba update'ować, niekompatybilnością (patrz fancybox). Poza tym nie lubię fajerwerków przy tak bazowych funkcjonalnościach, wolałbym zwykły pop-up js.

Dziękuję rozmówcom jeszcze raz za trafne sugestie.

// edit
Ok, zrealizowałem to na zwykłych, stabilnych i szybkich pop-upach. Może kiedyś ktoś będzie szukał podobnego rozwiązania, więc napiszę poniżej kilka banalnych instrukcji.

Wywołanie to zwykły:
  1. <a href="java script:void(0)">dodaj coś</a>

a kod JS do otwarcia pop-up wykorzystuje window.open() na zdarzeniu kliknięcia w jQuery, żadnej magii nie potrzeba.

Jeśli chcę dobrać się do zawartości formularza mogę korzystać z jQuery:
  1. $("#name").val();

Jeśli chcę dobrać się do wartości z formularza nadrzędnego:
  1. window.opener.jQuery('#type_id_fk').val();

Jeśli chcę zamknąć pop-up:
  1. window.close();

Reload okna nadrzędnego:
  1. window.opener.location.reload();


Ten post edytował Insert 13.07.2011, 00:04:17
Go to the top of the page
+Quote Post
Rid
post 13.07.2011, 02:10:51
Post #5





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


No,nie wiem jak ze standardowymi blokadami okienek pop up na przeglądarkach-sam się zastanawiam ,bo takie okienko zrobiłem i nie wiem czy nie będzie blokowane.Na razie mam na lokalhoście, ale jak będzie online??
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: 19.07.2025 - 16:01