Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak zastosować switch case dla $_POST
Wielebny.pl
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 1.06.2010

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


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 (IMG:style_emoticons/default/worriedsmiley.gif) Ma może ktoś z was jakiś pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
krzysztof_kf
post
Post #2





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


  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.  
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Uhm, a wiesz, na czym polega działanie switch?
Go to the top of the page
+Quote Post
Wielebny.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 1.06.2010

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


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ć(IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
tehaha
post
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


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'])
Go to the top of the page
+Quote Post
zend
post
Post #6





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


  1. switch((count($_POST) ? $_POST['action'] : false))
  2. {
  3. }


Ten post edytował zend 12.06.2010, 14:45:57
Go to the top of the page
+Quote Post
Wielebny.pl
post
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 1.06.2010

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


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.
Go to the top of the page
+Quote Post
zend
post
Post #8





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Drugie nie zgłosi błędów nawet jeśli nie wyślesz danych postem

Ten post edytował zend 12.06.2010, 16:58:02
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: 24.08.2025 - 18:07