Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Trzy formularz w jednym ?
d.stp
post
Post #1





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Mam taki bardziej skomplikowany formularz w którym mam:

- upload obrazków (php + ajax)
- upload plików (php + ajax)
- inputy tekstowe i selecty

Wszystko chciałbym umieścić na jednej podstronie, no i zaczyna się problem... dodatkowo to wszystko ma być podzielone na mniej więcej coś takiego:

inputy, selecty | upload obrazków
| upload plików
| checkboxy
| przycisk wyślij

I nie mam pojęcia jak do tego podejść... czy ratuje mnie tylko i wyłącznie rozbicie tego na etapy ?
Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #2





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Czyli rozdzielasz wszystko na:
Formularz 1
Formularz 2
Formularz 3

Proste rozwiązanie które mi przyszło teraz do głowy:

  1. if(!isset(_POST['_dane_wymagane_z_formularza_nr1_sa_podane']) AND !isset(_POST['_dane_wymagane_z_formularza_nr2_sa_podane'])){
  2. //Formularz nr 1 - ten który będzie widoczny na starcie.
  3. //Pierwsza seria inputów i checkboxów
  4. }
  5. if(isset(_POST['_dane_wymagane_z_formularza_nr1_sa_podane'])){
  6. //Formularz nr 2
  7. //Druga seria inputów i checkboxów
  8.  
  9. //Inputy type="hidden" z formularza nr 1 (żeby ich nie utracić)
  10. }
  11. if(isset(_POST['_dane_wymagane_z_formularza_nr2_sa_podane'])){
  12. //Formularz nr 3
  13. //Trzecia seria inputów i checkboxów
  14. //Uploader zdjęć
  15.  
  16. //Inputy type="hidden" z formularza nr 1 i 2 (żeby zostały wbite w baze danych)
  17.  
  18. //Wbicie do bazy danych lub pliku - zależnie od twoich potrzeb.
  19. }


To jest możliwie proste rozwiązanie, nie wiem co inni użytkownicy o tym myślą, ale po pierwsze jeszcze nikt Ci nie pomógł, a po drugie korzystamy tylko z php i jeden plik, to w moim mniemaniu zadziała - jeśli nie chcesz przeładowań strony potrzebny jest dodatkowy język np. jQuery lub Ajax.

Ten post edytował d0m1n1k_ 9.02.2015, 00:03:17
Go to the top of the page
+Quote Post
d.stp
post
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


Chyba nie do końca mnie zrozumiałeś, ale dzięki za pomoc. Na tej podstronie mam już zrobiony formularz uploadu zdjęć oraz formularz uploadu plików. Całość oparta na php + ajax. Z tym że tutaj sprawa wygląda tak, że te formularze do uploadu są oddzielne. Mam dwa <form> do tego (id="imagesUpload" | id="fileUpload") i cały problem polega na tym, że te formularze są w środku tego formularza z lewej strony (inputy, selecty).

Może inaczej:

Mam taki długi formularz, w kolejności:

[input]
[input]
[select]
[input]
[textarea]
[formularz uploadu plików - osobny]
[formularz uploadu zdjęć - osobny]
[input]
[checkbox]
[textarea]
[SUBMIT]

I teraz tak - jak już pisałem upload obrazków i plików to dwa osobne formularze. Działają one na zasadzie że wybiera się plik [input=file] i po wybraniu z automatu wrzuca się plik czy obrazek i wyświetlają się informacje o nim - wszystko php + ajax. Teraz tym ostatnim submit chciałbym wrzucić zapytanie do bazy z tymi inputami, selectami itd.

Nie wiem czy jest jakieś obejście tego, ale wydaje mi się że będę musiał upchać to wszystko w jeden formularz (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #4





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Teraz już chyba rozumiem (IMG:style_emoticons/default/smile.gif)

Powinno się udać w JavaScript

  1. <input type="button" value="Formularzuj!" onclick="submitForms()" />


Z racji, że twoje formularze mają ID:

  1. submitForms = function(){
  2. document.getElementById("imagesUpload").submit();
  3. document.getElementById("fileUpload").submit();
  4. }


Jeśli natomiast opierasz się na nazwach formularzy, a ID olewasz:

  1. submitForms = function(){
  2. document.forms["form1"].submit();
  3. document.forms["form2"].submit();
  4. }


Ten post edytował d0m1n1k_ 9.02.2015, 14:19:49
Go to the top of the page
+Quote Post
trueblue
post
Post #5





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


d0m1n1k_, nie zadziała.

d.stp, co stoi na przeszkodzie aby zrobić to w jednym formularzu?

Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #6





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Cytat(trueblue @ 9.02.2015, 15:05:09 ) *
d0m1n1k_, nie zadziała.


Dlaczego niby miałoby nie zadziałać?

To może coś takiego:

Jeśłi masz "tradycyjny" button, możesz dodać do niego poniższe działanie onClick, może to zadziała.

  1. document.getElementById('otherForm').submit();


Ten post edytował d0m1n1k_ 9.02.2015, 19:00:00
Go to the top of the page
+Quote Post
buliq
post
Post #7





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


Spróbuj odpalić 3 submity (kończące się requestem) na raz to się dowiesz (IMG:style_emoticons/default/smile.gif)

Formularze wewnątrz są ci kompletnie zbędne, tym bardziej że pola obsługujesz ajaxem. Jeżeli do ich obsługi używasz ich ID to zamień element FORM na np DIV i tez będzie działać.

Ale oczywiście niczego się nie dowiemy jak nie pokażesz kodu
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Każdy submit anuluje poprzedni submit. To tak jakby kliknąć szybko w 3 linki na stronie i oczekiwać, że otworzą się wszystkie 3 naraz w jednej zakładce.
Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #9





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Cytat(trueblue @ 9.02.2015, 18:58:01 ) *
Każdy submit anuluje poprzedni submit. To tak jakby kliknąć szybko w 3 linki na stronie i oczekiwać, że otworzą się wszystkie 3 naraz w jednej zakładce.


Przy jQuery dam radę ;-)
Ale zaczynam rozumieć Twój punkt widzenia.
Go to the top of the page
+Quote Post
buliq
post
Post #10





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


@up co ma do tego jQuery?
Go to the top of the page
+Quote Post
d.stp
post
Post #11





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 19.04.2012

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


trueblue ma rację.

Rozbiłem ten formularz na 2 kroki i po problemie.

Dzięki za pomoc panowie
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 02:59