Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Multi form ..... w jednym pliku
phpamator
post
Post #1





Grupa: Zarejestrowani
Postów: 328
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.
(IMG:style_emoticons/default/smile.gif)

dobra teraz poważnie, dość tych rymowanek (IMG:style_emoticons/default/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
 
Start new topic
Odpowiedzi (1 - 11)
markonix
post
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
Post #3





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
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
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
Post #5





Grupa: Zarejestrowani
Postów: 328
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
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
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
Post #8





Grupa: Zarejestrowani
Postów: 328
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 (IMG:style_emoticons/default/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
Post #9





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
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
Post #10





Grupa: Zarejestrowani
Postów: 328
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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
markonix
post
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
Post #12





Grupa: Zarejestrowani
Postów: 328
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 (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:40