Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz w pop-up
Forum PHP.pl > Forum > XML, AJAX > AJAX
Insert
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ę?
webdice
jQuery UI - dialog.
vokiel
Wiele skryptów typu lightbox oferuje opcję wczytania treści html i operowania na niej z wykorzystaniem ajax. Np taki prettyphoto
Insert
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();
Rid
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??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.