Strona 1 z 1

[PHP] Dynamiczne tworzenie zmiennej na podstawie innej zmien

: wt gru 12, 2006 11:23 pm
autor: isaiah
Witam,
nie wiem czy temat posta jest dla Was czytelny, ale nie potrafilem krotko opisac tego o co mi czodzi. Samymi slowami tez nie dam rady wiec oto przyklady z komentarzami:

[php]<?php
echo "<input name='ile$row[productID]' type='text' id='ile$row[productID]' value=' '>";
?>[/php]
To u gory to fragment dynamicznie tworzonego formularza na podstawie wpisów z bazy danych. Do kazdego pola textowego w atrybucie name i id jest przypisywany jest ciąg znaków ile oraz wartosc zmiennej $row[productID] czyli np.: ile01, ile22, ile17.

Po wysłaniu formularza wartość poa textowego jest dostepna w zmiennej np. $_POST[ile01]

I teraz moje pytanie, jak ustawic wartosc value na wartosc zmiennej ktora dopiero stworzymy.

chodzi o cos w tym stylu:

<?php
echo "<input name='ile$row[productID]' type='text' id='ile$row[productID]' value=' $ilei_tu_wartosc_zmiennej_$row[productID]'>";
?>[/b]

Dla ciekawych po co tak robic powiem ze przydaje sie gdy mamy formularz ktory sprawdzamy pod katem bledow w wypelnieniu i gdy takie znajdziemy czyscimy tylko zmienne z bledami a inne dzieki temu pozostaja w swoich polach.

Re: [PHP] Dynamiczne tworzenie zmiennej na podstawie innej zmien

: wt gru 12, 2006 11:58 pm
autor: Hawk
Spróbuj tak:

[php]<?php
echo ' <input name="ile['.$row["productID"].']" type="text" id="ile['.$row["productID"].']" value="" />'."\n";
?>[/php]

A przy wyświetlaniu:

[php]<?php
$ile = $_POST["ile"];
echo ' <input name="ile['.$row["productID"].']" type="text" id="ile['.$row["productID"].']" value="'.$ile[$row["productID"]].'" />'."\n";
?>[/php]

Idea jest taka: zamiast tworzyć zmienne typu $_POST["ile01"], itp. tworzymy tablicę $_POST["ile"], której indeksami są wartości zmiennej $row["productID"] - w związku z czym nie ma problemów z dostaniem się do odpowiedniego elementu.

...

: śr gru 13, 2006 11:08 am
autor: 123456
Rozwiazanie z tablica jest bardzo dobre i warto je stosowac, jednak napisze jeszcze poprawna wersje tego co chciales uzyskac.
Do kazdego pola textowego w atrybucie name i id jest przypisywany jest ciąg znaków ile oraz wartosc zmiennej $row[productID] czyli np.: ile01, ile22, ile17.
Dynamiczne nazwy zmiennych w PHP tworzy sie w nastepujacy sposob:
[php]<?php

$index = 123; // index ustalany np. w petli

${"zmienna{$index}"} = "wartosc zmiennej"; // dynamiczne zlozenie nazwy zmiennej

print $zmienna123; // odwolanie do zmiennej jak do kazdej innej...

// ...i na ekranie jest "wartosc zmiennej"

?>[/php]

Re: [PHP] Dynamiczne tworzenie zmiennej na podstawie innej zmien

: śr gru 13, 2006 6:42 pm
autor: viraptor
Co tu się dzieje? Nie, nie, nie i jeszcze raz nie dla "register_globals"!
Skoro ileXX jest dostępne w post, to po prostu sprawdzasz:
[php]for($i=1;array_key_exists('ile'.$i, $_POST);$i++) {
sprawdź_cośtam_w($_POST['ile'.$i]);
}[/php]