Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> switch i użycie for, czy można zbudowac taki skrypt
xmarko
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 26.02.2004

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


Zastanawiam się , czy jest możliwe użycie petli for pobierajacej dane z tablicy i zastosowanie wyników dla funkcji switch?
Stworzyłem coś takiego:
  1. <?php
  2.  
  3. $wyswietl_napis = array (&#092;"Strona główna\", \"O nas\" , \"kr\");
  4. $cas = array(&#092;"glowna\" , \"o_nas\" , \"kr\");
  5. $ile=count($cas);
  6.  
  7. switch($_GET['akcja'])
  8. {
  9. for ($i=; $i<$ile ; $i++)
  10. {
  11. case $cas[$i]. &#092;":\".$wyswietl.\"=(<div class=wpisy>\".$wyswietl_napis [$i].\"</div>\"; break;
  12. } 
  13. }
  14. print ($wyswietl);
  15. ?>

Zdaje sobie sprawę że konstrukcja jest błędna - nie działa.


A oto poprawnie działająca funkcja switch

  1. <?php
  2. switch($_GET['akcja']){
  3. case &#092;"glowna\":$wyswietl = (\"<div class=wpisy>Strona główna</div>\"); break;
  4. case &#092;"o_nas\":$wyswietl = (\"<div class=wpisy>O nas</div>\"); break;
  5. case &#092;"kr\":$wyswietl = (\"<div class=wpisy>kr</div>\"); break;
  6.  
  7. }
  8. print ($wyswietl);
  9.  
  10. ?>


Prosze o opinie , sugestie, informacje czy jest możliwe zbudowanie czegoś takiego.
Jeżeli jest taka możliwość - proszę o sugestie w jakim miejscu i w jaki sposób należy zmienić treść skryptu.

Ten post edytował xmarko 31.01.2005, 10:39:52


--------------------
marko
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Nie ma to jak utrudniac sobie zycie smile.gif :
  1. <?php
  2. $dane = array( 'glowna' => 'Strona główna', 'o_nas' => 'O nas' ); // .. itd
  3.  
  4. if ( in_array( $_GET[ 'akcja' ] ) )
  5. {
  6. print( '<div class=wpisy>' . $dane[ $_GET[ 'akcja' ] ] . '</div>';
  7. }
  8. else
  9. {
  10. // brak takiej strony
  11. }
  12.  
  13. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
xmarko
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 26.02.2004

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


Zgadza się można to tak zrobić.
Nadal nie mam jednak odpwiedzi co do tematu funkcji switch - czy można użyc funkcji for pobierającej dane z tablicy ?
Przykałd jest fajny , ale jak wykonać to przy zstosowaniu troche innej tablicy, która jest cześcią strony - nie moge jej zmienić.

  1. <?php
  2.  
  3. $link_adres = array( ' Strona główna' =>'glowna.php', 
  4.  'O nas' =>'o_nas.php',
  5. // i tak dalej...
  6. );
  7. ?>

za pomoca tej tablicy tworze sobie meni
  1. <?php
  2.  
  3. $baza_adres=&#092;"index2.php?akcja=\";
  4.  while (list($nazwa, $url) = each($link_adres))
  5. {
  6. echo &#092;"<a href=\".$baza_adres.str_replace('.php', '', $url).\">\".$nazwa.\"</a><br />\";
  7. }
  8.  
  9. ?>

Trzeba zauważyc, że zmieniam tu np : Strona glówna=>glowna.php przy zastosowaniu str_replace na "glowna".

JAk w takim przypadku powinien wyglądać kod zapisu :
  1. <?php
  2.  
  3. if ( in_array( $_GET[ 'akcja' ] ) )
  4. {
  5. ..................
  6. }
  7. ?>


--------------------
marko
Go to the top of the page
+Quote Post
ennics
post
Post #4





Grupa: Zarejestrowani
Postów: 312
Pomógł: 0
Dołączył: 29.12.2004

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


zamiast for możesz użyć foreach

  1. <?php
  2.  
  3. $wyswietl_napis = array (&#092;"Strona główna\", \"O nas\" , \"kr\");
  4.  
  5. print &#092;"<a href='skrypt.php?akcja=foreach'>Pokaż</a>\";
  6.  
  7. switch($_GET['akcja'])
  8. {
  9.   case &#092;"foreach\":
  10.   foreach ( $wyswietl_napis as $zmienna )
  11.   {
  12.     print &#092;"<div class=wpisy>$zmienna</div>\";
  13.   }
  14.   break;
  15. }
  16.  
  17. ?>


Ten post edytował ennics 31.01.2005, 13:02:14


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:52