Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Trzy formularz w jednym ?
d.stp
post 8.02.2015, 16:49:13
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 9.02.2015, 00:02:23
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


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
d.stp
post 9.02.2015, 10:14:16
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 sad.gif
Go to the top of the page
+Quote Post
d0m1n1k_
post 9.02.2015, 14:19:05
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 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


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
trueblue
post 9.02.2015, 15:05:09
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
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 9.02.2015, 18:48:46
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


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
buliq
post 9.02.2015, 18:57:54
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 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


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
trueblue
post 9.02.2015, 18:58:01
Post #8





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
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 9.02.2015, 19:01:32
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.


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
buliq
post 9.02.2015, 19:02:50
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?


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
d.stp
post 10.02.2015, 10:25:28
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
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.04.2024 - 23:06