Autor Zpráva
milbr
Profil *
Dobrý večer,
chtěl bych vás poprosit o radu. Už mi to asi moc nemyslí. Vytvářím si jednoduchý redakční systém a narazil jsem na problém při předávání proměnných kde dopředu neznám name inputu.
Pro vás to bude asi hračka.
Předem moc děkuju

Mám dynamicky vypsané inputy pomocí while <input type=\"text\" name=\"$sloupce_db\" />

Jak bych měl v dalším scriptu přijmout data z formuláře.
Se známým name by to mělo být $sloupce = $_POST['sloupce'];
bukaj
Profil
milbr
Se známým name by to mělo být $sloupce = $_POST['sloupce'];
Jestli jsem to pochopil správně, pak:
foreach ($_POST as $k => $v) {
    $$k = $v;
}

Viz Variable variables.
george
Profil
Zde to nebude problém, pokud již máš $sloupce proměnnou naplněnou hodnotou v integer, mělo by to klasicky pomocí lecjaké funkce třeba mail() převést pod nějakou podmínkou a pokud bude chyba, tak s else to vyústíš.

Jinak bezpečnější je metoda GET si osobně myslím.
milbr
Profil *
Dobrý večer,

bukaj
moc děkuji za radu, ale moc to nechápu, chtěl bych vás poprosit o bližší osvětleí

george
Děkuji za odpověď chtěl bych poprosit o kousek názorného příkladu.
bukaj
Profil
milbr
moc děkuji za radu, ale moc to nechápu, chtěl bych vás poprosit o bližší osvětleí
Jestli jsem to pochopil správně, tobě jde o to, aby se proměnná $_POST['foo'] uložila do $foo, $_POST['bar'] do $bar, $_POST['baz'] do $baz atp., že?
foreach ($_POST as $k => $v) {

Takže použijeme konstrukci foreach, které prochází celým polem a dokáže nám postupně předávat klíče (uloží se do $k, k jako key) a hodnoty k nim (uloží so do $v, v jako value).
    $$k = $v;

Dále využijeme tzv. proměnných s proměnnými názvy (kvůli tomu ty dva dolary na začátku). Takže pokud máme v $k např. foo, tak přiřazení $$k = $v; je to samé jako $foo = $v;. A protože iterujeme přes celé pole, do $k se dostávají postupně všechny klíče. Takže se tam dostane i bar a pak $$k = $v; je to samé jako $bar = $v;, když je v $k baz, tak zase jako $baz = $v; atd. atp.
}

A už je akorát potřeba ukončit blok.
milbr
Profil *
bukaj
Moc dík za podrobné vysvětlení.
Takto mám vypsané názvy sloupců v db a dále zpracovávám
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++)
{
$sloupec = mysql_field_name($fields, $i);
echo "
<form .......>
<textarea name=\"$sloupec\"></textarea>
</form>
";

A teď bych potřeboval v dalším scriptu přijmout obsah z těch textarea

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0