Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Zasięg zmiennych [$_GET]
jenova
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.05.2009

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


Witam.
Pytanie możliwe, że banalne, jakkolwiek nie znalazłem na nie odpowiedzi. Mój problem polega na 'zerowaniu zagnieżdżonej' macierzy. Wyświetlam menu, po kliknięciu przesyłam wartość np. ?id=1 do "index.php" i w <div> wyświetlam kod z "graphics.php" [ <- generuje w nim listę z linkami do stron w podanym katalogu].
Kod: index.php.
  1. <!-- menu -->
  2. <ul class="main_menu">
  3. <li><a href="?id=1">Graphics</a></li>
  4. </ul>
  5. <!-- end menu-->

  1. <div>
  2. <?php
  3. $idg = $_GET['idg']; //graphics.php linki do artykułów
  4. $id = $_GET['id']; //linki do 'generatorów' stron
  5.    $fileList = array();
  6.    switch($id){
  7.        case"1":include("graphics.php");break;
  8.    }    
  9.    if($fileList[$idg] != null){
  10.        include 'articles/'.$fileList[$idg];
  11.    }
  12.    var_dump($fileList); //dla testu
  13. ?></div>


Listuje katalog i generuje listę z linkami do artykułów [pliki .php] w podanym katalogu. Dla każdego pliku wygenerowany jest ?idg=$l (np. ?idg=0).
Kod: graphics.php.
  1. <?php
  2.  global $fileList; //nazwy plików z artami
  3.  ...
  4.  if($line == 3) echo '<li><a href="?idg='.$l.'">'.$buffer.'</a></li>'; // generuje linki dla plików
  5. ?>

W tym momencie mam w "index.php" -> <div> include graphics.php</div> i po kliknięciu na link z tego <div'a> chcę "includować" w nim daną stronę, o odpowiednim $idg (np. <div> include artykul1.php</div>). Niestety w momencie gdy klikam na link macierz $fileList się zeruje.
Robię to w tak 'zagmatwany sposób' ponieważ chcę automatycznie generować listę tych linków na bazie ilości plików (artykułów) w danym katalogu.
Testując var_dump($fileList) macierz jest zerowa w "index.php", po kliknięciu na link do "graphics.php" zostaje wypełniona, po kliknięciu na linka z <div'a> znowu zeruje się (include oczywiście zwraca błąd, że dany 'plik' 'articles/' nie może zostać otworzony).

Z góry dziękuję za wszelkie sugestie, linki itp.
Z poważaniem

Ten post edytował jenova 27.05.2009, 17:17:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Trochę to zagmatwałeś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
1. index.php generuje linki z $_GET['id'], po wybraniu 1 dołącza plik graphics.php
2. graphics.php generuje linki z $_GET['idg'], które są linkami do artykułów
tak?
  1. <?php
  2. $fileList = array(); // to możesz wywalić
  3. //graphic.php
  4. if($line == 3) echo '<li><a href="?id=1&idg='.$l.'">'.$buffer.'</a></li>'; // generuje linki dla plików, wraz z kategorią
  5. // w linku musisz też przekazywać samo id, żeby skrypt dołączył plik graphic.php
  6. ?>
Go to the top of the page
+Quote Post
jenova
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.05.2009

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


Dokładnie tak jak napisałeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Chciałem opisać problem najdokładniej jak tylko potrafiłem, stąd to zagmatwanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Twoje rozwiązanie działa, tylko problem w tym, że chcę 'podmienić' zawartość tego <div'a>. Tzn. postępując według Twojej wskazówki lista plików mi nie znika, a zawartość poszczególnego artykułu jest dodawana do <div'a>.

Natomiast nie wiem, czemu w momencie kliknięcia na linka z $idg (artykuły) wartość $fileList się zeruje? Próbowałem podmienić $id na wskazujący na pusty plik, lecz objawy takie same jak opisałem wcześniej.

Może istnieje jakieś alternatywne rozwiązanie?

PS. masz/macie może jakieś dobre opracowanie wpływu zmiennych i ich relacje pomiędzy różnymi plikami php. (php man jest mało pomocny, albo po prostu źle szukam)

Pozdrawiam

Ten post edytował jenova 27.05.2009, 18:18:26
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Heh, no to znów troche zagmatwałeś ;-)
Pokaż jakiś link do strony, rozrysuj co gdzie ma się pojawiać, w jakiej kolejności. Bo teraz to na prawdę jest cięzko 'załapać' co gdzie ma się podmieniać, co ma być widoczne, a co nie.
Jakiego div'a ? Div'a z menu, czy diva z listą generowaną przez graphic.php?
Jeśli to drugie to tak:
  1. <?php
  2. $fileList = array(); // mam nadzieje, że masz to gdzieś poza graphics.php
  3. $idsList = array(1=>"graphics.php");
  4. $idg = intval($_GET['idg']);
  5. $id = intval($_GET['id']);
  6. if ($idg){
  7.    if($fileList[$idg] != null){
  8.        include 'articles/'.$fileList[$idg];
  9.    }
  10. }else if ($id){
  11.    include  $idsList[$id];
  12. }else{
  13.   echo 'Nic nie wybrałeś, wybierz chociaż coś z głównego menu';
  14. }
  15. ?>
Go to the top of the page
+Quote Post
jenova
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 27.05.2009

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


Witam.
Cytat
Jakiego div'a ? Div'a z menu, czy diva z listą generowaną przez graphic.php?

Wygląda to tak:
1. id - link od menu, do 'glownych' podstron
2. idg - link do konkretnych artow. Po kliknieciu chce aby zawartosc tej strony wyswietlila sie w miejscu gdzie obecnie jest lista linkow [czyli <div>]
(IMG:http://img29.imageshack.us/img29/223/85214805.jpg)

Całość kodu do "includowania" trzymam w "index.php" w owym div'ie gdzie chcę odpowiednie strony wyświetlić.
Kod który podałeś w poprzednim poście nie działa w ten sposób jak chciałbym. Tzn. dalej pozostaje lista z np. "graphics.php" a zawartość poszczególnych artykułów jest dodawana do <div'a>.

Dziękuję za wsparcie z Twojej strony.
Pozdrowienia

[EDIT]
Znalazłem błąd w moim rozumowaniu [odrobina snu i posty vokiel'a w głównej mierze przyczyniły się do tego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ]. Powinienem od razu zapytać [lub, co jest oczywiste, w pierwszej kolejności przeczytać] o czas życia zmiennych w php (nie mam pojęcia jak coś tak oczywistego umknęło mej uwadze ^^'''). A mój "problem" wynika z tego, iż zmienne odpowiedzialne za generowania url'i do artykułów generowane są dla $id=1/2 [include graphics.php] więc oczywiście są one zerowe jeśli ich nie wywołam.
Eh... bycie początkującym [ekhm... noobem (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) ] zawsze jest ciężkie. Jeszcze raz dziękuję.
Temat można zamknąć.

Ten post edytował jenova 28.05.2009, 06:48:16
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: 3.10.2025 - 11:29