Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Tablica GET
Forum PHP.pl > Forum > PHP
MILICJA
Witam ponownie winksmiley.jpg Mam pewien problem z tablica $_GET[]. Chce zbudowac sobie przelacznik (switch) ktory bedzie ta tablice skanowal i w zaleznosci od jej zawartosci wykonywal jakies akcje. Zbudowalem sobie cos takiego, ale jak sie pewnie domyslacie nie dziala winksmiley.jpg Jesli ktos ma jakis pomysl badz gotowa rade, niech da znac. Pozdrawiam smile.gif

  1. <?php
  2. switch ($_GET[]) 
  3. {
  4. case 'a' : akcja1(); break;
  5. case 'b' : akcja1(); break;
  6. // itd.
  7. }
  8. ?>
sobstel
$_GET, a nie $_GET[].

p.s. na przyszłość podaj komunikat błędu itp.
MILICJA
heh winksmiley.jpg ten kod tutaj jest pisany z glowy smile.gif Nie w nawisach tkwi problem winksmiley.jpg Sprobuj sobie takie cos napisac i zobaczysz ze nie dziala.
l0ud
$_GET to jest tablica. Instrukcja switch nie odnosi się do tablic - musisz podać konkretną wartość np. $_GET['zmienna'] . Napisz konkretniej w jaki sposób chcesz przekazywać dane do skryptu, skoro tak dziwnie je odczytujesz winksmiley.jpg
MILICJA
Dobra napisze inaczej. Chce aby w zaleznosci od $a wykonywala sie jakas funkcja. Np. jesli $a = '1' to wykonuje się akcja1(); . Chcialem to rozwiazac uzywajac wlsanie switch a nie ( if/elseif itd.. ). Moze jest jakies inne rozwiazanie mojego problemu.
  1. <?php
  2. switch ($_GET[$a]) 
  3. {
  4. case '1' : akcja1(); break;
  5. case '2' : akcja2(); break;
  6. // itd.
  7. }
  8.  
  9.  
  10.  
  11. ?>
l0ud
Załóżmy że masz index.php i przekazujesz do niego zmienną w ten sposób: index.php?a=1

  1. <?php
  2. switch ($_GET['a']) 
  3. {
  4. case '1' : akcja1(); break;
  5. case '2' : akcja2(); break;
  6. // itd.
  7. }
  8.  
  9. ?>



W kodzie który dałeś, odwołujesz się do elementu tablicy o indeksie równym wartości zmiennej $a, która nie istnieje winksmiley.jpg Tak jak wyżej jest poprawnie.
MILICJA
Nie o to mi chodzi smile.gif Sprobuje jeszcze inaczej albo sie poddam smile.gif chce sprawdzic czy w adresie znajdue sie zmienna 'a' tzn. adres wyglada tak: www.mojastrona.pl?a=1234

i wtedy w switchu ma mi znalezc cos takiego

  1. <?php
  2. case 'a' : jakasfunckja(); break; // wykona sie dla www.mojastrona.pl?a=1234
  3. case 'b' : jakasfunckja2(); break; // wykona sie dla www.mojastrona.pl?b=45
  4. ?>
l0ud
No to nie jest switch do tego smile.gif

Przykłady:

Sprawdzenie czy w adresie znajduje się zmienna a
  1. <?php
  2. if (isset($_GET['a'])) funkcja();
  3. ?>


Wykonanie akcji w zależności o tego, jaka zmienna jest w adresie:

  1. <?php
  2. foreach ($_POST as $key) {
  3.  switch ($key) {
  4. case 'a': //zmienna a istnieje
  5.  funkcja();
  6.  break;
  7. case 'b':
  8.  funkcja2();
  9.  break;
  10. default:
  11.  funkcja3();
  12.  break;
  13.  }
  14. }
  15. ?>


Ale nie wiem po co Ci takie coś tongue.gif
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.