Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak zastosować switch case dla $_POST
Forum PHP.pl > Forum > PHP
Wielebny.pl
zrobiłem sobie button na podstawie formy:
  1. <form action="plik.php'" method="post">
  2. <input type="hidden" name=LOAD>
  3. <input type="submit" value="COS WCZYTAJ">
  4. </form>

przy odświeżeniu plik.php funkcja wyłapuje Postem wartość np LOAD:
  1. if (isset($_POST['LOAD']))
  2. {
  3. COŚ RÓB;
  4. }


I teraz jak mam kilka przycisków to warunek if muszę użyć kilka razy ale czy można użyć w tej sytuacji switch + case? Jeśli tak to jak to zrobić bo np
Switch ($_POST) nie działa a Switch ($_POST[]) czy Switch ($_POST['']) mówi ze nieznany lub brak indexu dla post worriedsmiley.gif Ma może ktoś z was jakiś pomysł?
krzysztof_kf
  1.  
  2. <?php
  3.  
  4. switch($zmienna){
  5. case 'wartość1':
  6. ...
  7. instrukcje
  8. ...
  9. break;
  10. case 'wartość2':
  11. ...
  12. instrukcje
  13. ...
  14. break;
  15. default:
  16. ...
  17. instrukcje
  18. ...
  19. }
  20.  
  21. ?>
  22.  
erix
Uhm, a wiesz, na czym polega działanie switch?
Wielebny.pl
Może źle się wysłowiłem

Chodzi mi o coś takiego:
stanadrtowo mam teraz wyłapywanie postem poprzez składnie warunkową IF czyly:
  1. if (isset($_POST['LOAD'])
  2. coś robi;
  3. else
  4. if (isset($_POST['DELETE'])
  5. coś robi;

itd. Ale chciałbym użyć do tego tzw przełącznika wyboru i czy dało by rade to zrobićquestionmark.gif

bo:
  1. switch ($_POST)
  2. case 'LOAD':
  3. {
  4. coś robi; break;
  5. }
  6.  
  7. case 'DELETE':
  8. {
  9. coś robi; break;
  10. }

nie działa. Tak jak napisałem w 1 poście.
tehaha
nie działa bo $_POST to tablica, zrób tak żebyś przesyłał zmienną np. action - $_POST['action'] z wartością: delete, load itd, i potem robisz switch($_POST['action'])
zend
  1. switch((count($_POST) ? $_POST['action'] : false))
  2. {
  3. }
Wielebny.pl
Zadziałało jak dla input hidden dokonałem małej zmiany wprowadzając wartość value
  1. <input type="hidden" name="akcja" value="Load">

Choć nie wiem czym sie różni:
  1. switch($_POST['action'])

od
  1. switch((count($_POST) ? $_POST['action'] : false))

bo efekt końcowy jest taki sam czyli poprawny.
zend
Drugie nie zgłosi błędów nawet jeśli nie wyślesz danych postem
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.