Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Multi form ..... w jednym pliku
phpamator
post 28.05.2018, 22:24:57
Post #1





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


Panowie i Panie,
Dziś znów mam pytanie...
nagrode dostanie ... kto męki me skróci, bo walczę z potworem od "Form"
i mnie smuci, że zwalczyć nie mogę bo coś mi się kłuci,
wysyła poprawnie lub tak mi się zdaje bo nie jest to prawdą co stwór mi oddaje.
smile.gif

dobra teraz poważnie, dość tych rymowanek smile.gif jako, że jestem amator i tworzę jakieś cuda wianki już od pewnego czasu zapytowywuję się ...
niestety albo moja wiedza w dalszym ciągu jest beznadziejnie słaba albo zrobiłem jakiś banalny błąd i go poprostu nie dostrzegam.

Otóż w kodzie poniżej mam dwie formy, jedna do zapisania otrzymanego klucza a druga jak wspomniałem to prośba o nowy klucz i dwa przyciski po jednym dla każdej formy.
Jednak kiedy klikam na przycisk który powinien wysłać request po nowy klucz nic takiego się nie dzieje za to dzieje się sprawdzanie. I już mnie trafia bo teoretycznie sprawa jest banalna jak zupka mleczna.
  1. if(isset($_POST['popros'])){
  2. //wywoluje funkcje wysylajaca request
  3. poprosoKlucz();
  4. }
  5.  
  6. if(isset($_POST['zapisz'])){
  7. //wywoluje funkcje zapisujaca klucz
  8. zapiszKlucz();
  9. }
  10.  
  11. <div class="wrap kp">
  12. <p>Jeśli posiadasz już klucz, wprowadź do okienka poniżej i kliknij "Zapisz"</p>
  13. <div>
  14. <form id="zachowaj" method="post">
  15. <input type="text" name="klucz" value="Zapisz"/>
  16. <input type="submit" name="zapisz" value="Zapisz"/>
  17. </form>
  18. </div>
  19.  
  20. <div class="request">
  21. <p>Jeśli nie posiadasz klucza możesz uzyskać nowy klikając przycisk umieszczony poniżej.</p>
  22. <form id="popros" method="post">
  23. <input type="submit" name="popros" value="Kliknij tutaj" />
  24. </form>
  25. </div>
  26. </div>


to przecież banalnie proste prawda ? dlaczego więc nie robi o co proszę ?
dodatkowo, ponieważ zapisuję zdarzenia do logu, znajduję w nim za każdym razem .... dwa wpisy z tą samą treścią ....
dziwne.
Tak wiem, prościej byłoby użyć jQuery i Ajax ale chciałem zrobić to z poziomu php wykorzystując <form>/<input> /<button> i wszystko w jednym pliku.
Czy jest jakaś zasada mówiąca gdzie powinno się znajdować np "if(isset($_POST))" na początku pliku lub na końcu czy to bez znaczenia ? Czy umieszczenie form i wykonywania requestów z tego samogo pliku to poprostu zły pomysł a może poprostu całą moja misterna konstrukcja jest o kant ... rozbić ?

Ten post edytował phpamator 28.05.2018, 22:33:30
Go to the top of the page
+Quote Post
markonix
post 29.05.2018, 01:04:50
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Dodaj action do formularzy.


--------------------
Go to the top of the page
+Quote Post
trueblue
post 29.05.2018, 06:03:31
Post #3





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


A dlaczego nie używasz jednego formularza?


--------------------
Go to the top of the page
+Quote Post
markonix
post 29.05.2018, 10:38:06
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Ja bym zostawił osobne jako rozdzielone logicznie i zawierające inne zestawy danych. Pchanie do jednego formularza nie da nic poza zaoszczędzaniem 2 linijek kodu, a łatwo będzie o pomyłkę gdy zmieni się coś z przyciskiem.
Dlatego bym nie operował po value przycisku, a dał pole hidden z nazwą akcji - najpewniejsze i najbardziej klarowne.


--------------------
Go to the top of the page
+Quote Post
phpamator
post 29.05.2018, 14:01:16
Post #5





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


Cytat(markonix @ 29.05.2018, 01:04:50 ) *
Dodaj action do formularzy.


Action powiadasz ?
A co to zmieni ? Z action czy bez, wciąż nie działa ... i to mnie zaskakuje ... bardzo.

Aaaaale oczywiście sprawdzę.
Go to the top of the page
+Quote Post
mrk9109
post 29.05.2018, 19:22:45
Post #6





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


co to zmieni ? że formularz będzie wiedział z którego pliku ma wykonać polecenie php które zapiszesz
Go to the top of the page
+Quote Post
markonix
post 30.05.2018, 00:25:17
Post #7





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Jak nie działa to zacznij debugować, sprawdź chociażby co zawiera $_POST.


--------------------
Go to the top of the page
+Quote Post
phpamator
post 30.05.2018, 08:43:24
Post #8





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


W kwestii action dodałem action="" .... bez rezultatu, dodałem action="<?php echo $SELF_costam?>" też nic, dodałem action="#" i skutek niezmiennie ten sam.
Co do zawartości $_POST wygląda na prawidłową i zawiera:
array (size=1)
'prosba' => string 'Kliknij tutaj' (length=13)
i if($_POST['prosba']=='Kliknij tutaj'){//zrob cos}
i tak nie robi tego co trzeba smile.gif
No nic, musi gdzieś coś jakiś drobiazg, przepiszę sprawdzę jeszcze raz, może mi jakiś znak umknął i robi sobie jaja.

Go to the top of the page
+Quote Post
trueblue
post 30.05.2018, 08:46:43
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


prosba a popros, to literówka, czy tak masz w kodzie?


--------------------
Go to the top of the page
+Quote Post
phpamator
post 1.06.2018, 08:34:34
Post #10





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


miało być "popros" ale nie kopiowałem tylko klepałem i wklepałem prosba zamiast popros smile.gif
Go to the top of the page
+Quote Post
markonix
post 1.06.2018, 22:03:34
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Pierwotny skrypt, z pierwszego postu działa.
Problem jest z funkcjami, które nie wiadomo co robią, i pewnie nic nie robią.


--------------------
Go to the top of the page
+Quote Post
phpamator
post 2.06.2018, 20:18:36
Post #12





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

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


To interesujące, zresztą nie oczekiwałem niczego innego. I to powinno działać wszak to banalnie proste ustrojstwo ... prawda ?
a nie działa smile.gif
własnie usiadłem żeby wszystko jeszcze raz sprawdzić ....
no i .... oczywiście znalazłem przyczynę ..... oooo wciurności .....
wiedziałem że to jakaś pierdoła, jeden przecinek i wszystko działa, same formy nie miały na to żadnego wpływu, to własnie kod w którym odbierany był request ... aaah gapa ze mnie, nie zauważyłem.


Ten post edytował phpamator 2.06.2018, 21:39:45
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: 25.04.2024 - 07:25