Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Multi form ..... w jednym pliku
Forum PHP.pl > Forum > Przedszkole
phpamator
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ć ?
markonix
Dodaj action do formularzy.
trueblue
A dlaczego nie używasz jednego formularza?
markonix
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.
phpamator
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ę.
mrk9109
co to zmieni ? że formularz będzie wiedział z którego pliku ma wykonać polecenie php które zapiszesz
markonix
Jak nie działa to zacznij debugować, sprawdź chociażby co zawiera $_POST.
phpamator
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.

trueblue
prosba a popros, to literówka, czy tak masz w kodzie?
phpamator
miało być "popros" ale nie kopiowałem tylko klepałem i wklepałem prosba zamiast popros smile.gif
markonix
Pierwotny skrypt, z pierwszego postu działa.
Problem jest z funkcjami, które nie wiadomo co robią, i pewnie nic nie robią.
phpamator
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.
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.