input form name megadása SQL adatbázisból és $POST kérdés
Sziasztok,
A segítségeteket szeretném kérni és előre is bocsi, ha túl könnyűt kérdezek, de a következő problémára nem találok semmilyen értelmes megoldást:
Az adatbázisom parameters táblájának a param_name mezőjébe elmentettem stringeket, amiket fel szeretnék használni a form input name értékhez. Ezeket a kitöltött input form-okat aztán a felhasznal.php-ban változókba szeretném tenni.
Gondoltam rá, hogy tömbbe kellene raknom az adatbázisból kiolvasott param_name értékeket és utána ezt használnám a name érték megadásánál. Erre nem találtam megoldást, viszont arra sem, hogy a $POST[] utána hogyan veszi át pl. tömb értéket.
elso.php:
$seged=mysql_query("select * from parameters");
<?php echo " <form action='felhasznal.php' method='post'>
<table border='1' cellpadding='5' cellspacing='0'>";
while ( $kiolvas=mysql_fetch_assoc($seged))
{
$valt=$kiolvas['param_name'];
echo "<tr><td>".$valt." </td><td><input type='text' name='".$valt."' /></td></tr>";
}
?>
felhasznal.php:
<?php
$kiir=$_POST['$valt'];
echo $kiir;
echo "<BR>";
?>
■ A segítségeteket szeretném kérni és előre is bocsi, ha túl könnyűt kérdezek, de a következő problémára nem találok semmilyen értelmes megoldást:
Az adatbázisom parameters táblájának a param_name mezőjébe elmentettem stringeket, amiket fel szeretnék használni a form input name értékhez. Ezeket a kitöltött input form-okat aztán a felhasznal.php-ban változókba szeretném tenni.
Gondoltam rá, hogy tömbbe kellene raknom az adatbázisból kiolvasott param_name értékeket és utána ezt használnám a name érték megadásánál. Erre nem találtam megoldást, viszont arra sem, hogy a $POST[] utána hogyan veszi át pl. tömb értéket.
elso.php:
$seged=mysql_query("select * from parameters");
<?php echo " <form action='felhasznal.php' method='post'>
<table border='1' cellpadding='5' cellspacing='0'>";
while ( $kiolvas=mysql_fetch_assoc($seged))
{
$valt=$kiolvas['param_name'];
echo "<tr><td>".$valt." </td><td><input type='text' name='".$valt."' /></td></tr>";
}
?>
felhasznal.php:
<?php
$kiir=$_POST['$valt'];
echo $kiir;
echo "<BR>";
?>
Mi a kérdés?
mykee: próbáltad már kiíratni a $_POST tömböt?
$kiir=$_POST['$valt']; ez
$kiir=$_POST['$valt'];
ez komoly?
Bocsi a nehézkes
Adott egy adatbázis mező amiben vannak elemek (param_name mezőben pl. van 10 elemem, string típusúak)
Egy while ciklussal gondoltam létrehozni input beviteli mezőt ami végül is annyi db lesz ahány elemű a param_name mező.
A felhasználó kitölti az összes input mezőt és megnyomja a "submit" gombot. A dinmaikusan létrehozott input értékeket szeretném átvenni a felhasznal.php-ba. Ezután szeretném az átvett input mező értékeket itt a felhasznal.php-ban felhasználni.
Most itt tartok:
elso.php:
$dt1=mysql_query("select * from parameters"); // kiválasztom a parameters tábla összes mezőjét
echo " <form action='felhasznal.php' method='post'>
<table border='1' cellpadding='5' cellspacing='0'>";
while ( $kiolvas=mysql_fetch_assoc($dt1))
{
$valt=$kiolvas['param_name'];
echo "<tr><td>".$valt." </td><td><input type='text' name='parameterek' /></td></tr>"; //létrehozok annyi input mezőt, amennyi eleme van a param_name mezőnek. A dinamikusan létrehozott input mezőknek egységesen "parameterek" nevet adom és erre a névre fogok hivatkozni a felhasznal.php $_POST-nál.
}
echo "</table>
<input type='submit' name='kuld' value='Submit' /></form>
<br></br>";
felhasznal.php:
foreach ($_POST as $kulcs => $ertek) {
echo $kulcs, ': ', $ertek;
}
Ez eddig annyit tud, hogy az utolsó input értékét átveszi és kiírja az $_POST nevét (parameterek) és az utolsó input mező értékét. Nekem viszont az összes input mező értéke kellene.
Szerintem erre lesz szükséged:
[szerk]bocsi, a hármas hozzászólásra akartam válaszolni[/szerk]
Nagyon köszi a segítséget!
Sikerült megoldani úgy, hogy a input name értékét tömbbé alakítottam:
<input type='text' name='parameterek[".$valt."]' />
és utána ezt mint tömböt olvastam ki az $_POST[parameterek]-el.
Még ez sem kell
Ha úgy csinálod, mint a linkelt manualban:
$_POST['MyArray'][0], ... , $_POST['MyArray'][$n]
elemekként. Így nem kell a HTML kiírásakor számlálót növelgetned, lehet sima foreach.