Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: "dynamiczne nazwy zmiennych"
Forum PHP.pl > Forum > Przedszkole
fido20
Nie za bardzo wiedziałem jak nazwać ten temat. Chodzi o to że mam kilka zmiennych nazywających się odpowiednio $_POST['a1'], $_POST['a2'], .... , $_POST['an']

Chciałbym teraz wyświetlić ich wartość na stronie. I tu pojawia się problem, czy dałoby sie to jakoś tak zrobić żeby wyświetlać je za pomocą pętli.

Chodzi mi o coś takiego

  1. <?php
  2.  
  3. for ($i = 1; $i <= n; n++);
  4. {
  5. echo $_POST['a$i'];
  6. }
  7.  
  8. ?>

Czy taka konstrukcja jest wogle mozliwa , czy jednak jedynym rozwiazaniem jest utworzenie tablicy i dopiero odczytanie tych wartosci za pomoca tablicy ?

Pozdrawiam
FiDO
Byles blisko.. taka konstrukcja jest mozliwa, ale musisz zastosowac cudzyslowy a nie apostrofy:
  1. <?php
  2.  
  3. for ($i = 1; $i <= n; n++);
  4. {
  5. echo $_POST[&#092;"a$i\"]; // lub $_POST['a'. $i]
  6. }
  7.  
  8. ?>
fido20
Wielkie dzieki, ta "sztuczka" skróci moje skrypty o ok 20% biggrin.gif
karawan
Czy możliwe jest generowanie w pętli czegoś takiego:

for( $a = 1; $a <= $i; $a++ )
{
print' <input name="zmienna'.$a.'" type="text" id="zmienna'.$a.'" value=" tu właśnie nie wiem co wpisać " >';
}

Chciałbym aby formularz generował się w pętli i powstawały nazwy zmiennych:
$zmienna1
$zmienna2
$zmienna3
............. -
mają one przypisane wartości

W przypadku "name=" sprawa jest prosta name="zmienna'.$a.'"
ale w przypadku "value=" trzeba podać zmienne w postaci $zmienna1 ....itd.
FiDO
${"zmienna".$i}

PS. prosze uzywac BBCode do wklejanego kodu.
karawan
Wielkie dzięki - działa smile.gif
Poprawię się ze sposobem wklejania kodu
szyman83
a co jeżeli nazwa zmiennej ma postać:

  1. <?php
  2.  $uu->godzina1 
  3. ?>


bo zapis

  1. <?php
  2. ${&#092;"uu->godzina\".$uu}
  3. ?>

niedziała.

Ktoś może wie jak to przeskoczyć??
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.