Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS][FancyBox] Wysyłanie formularza do iframe
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
yas
Witam. Mam taki kod:

  1. <form name="form" id="myForm" method=post action=test.php>
  2. <input type="hidden" name="xyz" value="123">
  3. <input type="submit" value="REGISTER" id="button" class="button">
  4. </form>

Używam fancyboxa i chce by po wciśnięciu guzika register otwierał się pop-up a do niego by leciały dane z formularza. Jak to zrobić?
PaFaT
Drogi(a) yas,

Zakładam, że rzeczony pop-up jest ramką iframe.

Innymi słowy, zależy Ci na przesłaniu danych z formularza do ramki.

Kod formularza powinien być następujący:

  1. <form name="form" id="myForm">
  2. <input type="hidden" name="xyz" value="123">
  3. <input type="button" value="REGISTER" id="button" class="button" onclick="register(this.form); ">
  4. </form>


Kod JS:

  1. <script type="text/javascript">
  2. function register(form)
  3. {
  4. if(!form) return;
  5. var xyz = form.elements["xyz"];
  6.  
  7. // tu sprawdzanie poprawności wprowadzonych danych
  8.  
  9. // teraz odwoływanie się do pop-up:
  10. var iframe = document.getElementById("popup-iframe");
  11. if(!iframe) return;
  12. iframe.style.display = "block";
  13.  
  14. var doc = iframe.contentDocument; // wszystkie przeglądarki (oprócz IE)
  15. doc = doc ? doc : iframe.contentWindow.document; // IE
  16. var forms = doc.getElementsByTagName("form")[0];
  17.  
  18. // wpisywanie danych do pól input w pop-up
  19. var xyz2 = forms.elements["xyz"];
  20. xyz2.value = xyz.value;
  21.  
  22. // to samo dla pozostałych pól
  23.  
  24. // jeśli chcesz od razu wysłać formularz w pop-up, użyj formuły
  25. // forms.submit();
  26.  
  27. }


W powyższym tekście założyłem, iż formularz w pop-up jest pierwszym formularzem w pliku.
W razie potrzeby zmień nr formularza (linia var forms = doc.getElementsByTagName("form")[0]; ).

Jeśli nie istnieje jeszcze kod ramki iframe, użyj mniej więcej takiego:

  1. <iframe src="register-popup.php" style="height: 250px; width: 400px; BLA BLA BLA; z-index: 2500; position: absolute; display: none; " id="popup-iframe"></iframe>


Oczywiście w miejsce BLA BLA BLA wpisz jakieś inne wartości. smile.gif

Powinno zadziałać...
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.