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.
[PHP] Dynamiczne tworzenie zmiennej na podstawie innej zmien
Re: [PHP] Dynamiczne tworzenie zmiennej na podstawie innej zmien
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.
[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.
...
Rozwiazanie z tablica jest bardzo dobre i warto je stosowac, jednak napisze jeszcze poprawna wersje tego co chciales uzyskac.
[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]
Dynamiczne nazwy zmiennych w PHP tworzy sie w nastepujacy sposob: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.
[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
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]
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]

