Autor Zpráva
petris
Profil
Co je špatně na této konstrukci?
echo"<input type=text size=1 name='".$vino[$i][1]."'>";

---
---
if ($_REQUEST[$vino[$i][1]]) 
.... atd.. ?
djlj
Profil
$_REQUEST[$vino][$i][1]
tiso
Profil
vyplňovanie formulára:
- je treba dôsledne inicializovať premenné

práca s odoslaným formulárom:
-je lepšie formulár spracovávať na začiatku skriptu a výpis formu na konci, aby sa dalo presmerovávať pomocou hlavičiek (header()):
if(isset$_POST["submit"]){//formular odoslany, spracuj ho
...
}
//vypis form

- je lepšie testovať či bol vôbec formulár odoslaný (viď vyššie) a či daná premenná existuje:
if(isset($_POST["blabla"]){//premenna existuje, mozem s nou pracovat
...
}

-je lepšie pracovať s $_GET alebo $_POST premennými podľa toho čo očakávaš, nie je dobré keď Ti niekto môže podstrčiť premenné cez $_GET
- hlavne nezabudni na ošetrenie vstupných premenných!!!
petris
Profil
djlj
$_REQUEST[$vino][$i][1]
Bohužel to nepomohlo. Výsledkem je Warning: Illegal offset type

tiso
Máš samozřejmě pravdu, později to tak poskládám. Ale momentálně mám problém v tom, že ani $_REQUEST[$vino[$i][1]] ani $_REQUEST[$vino][$i][1] jak poradil djlj mě hodnotu z formuláře nepřevezmou. Bude to nějaká chyba v zápisu, ale nemůžu přijít na to jaká. Přitom pole $vino je normálně načtené a ve zbytku kódu bez problémů funguje.
djlj
Profil
petris
Asi máš prázdné $i.
petris
Profil
petris
Asi máš prázdné $i.
Nemám.

Ještě jinak:
$test = $vino[$i][1];
echo $test;
- normálně se vypíše
echo"<input type=text size=1 name='".$test."'>";
- správně se vloží obsah proměnné
print_r($_POST[$test]);
- po odeslání formuláře se nevypíše nic.
djlj
Profil
A co máš teď v proměnné $test? Nemáš náhodou na mysli tohle?:

echo"<input type='text' size='1' name='test' value='".$test."'>";

print_r($_POST['test']);
petris
Profil
V proměnné $test je vždy značka vína (např. Castelo Medina Verdejo), která je uložená v $vino[$i][1] - Celé to běhá v cyklu while od $i = 0.
V inputu se zadá číslo, které chci jak vypsat, tak uložit do $vino[$i][5], akorát že ho nemůžu z toho formuláře dostat.

Pokud v inputu zadám name natvrdo a vypíšu print_r($_POST['test']), tak to funguje, jenže já to potřebuju v cyklu.
Pro ilustraci: Jedná se o tyto stránky, ale uvedené úpravy dělám samozřejmě na localu.
tiso
Profil
Nerozumiem o čo ti vlastne ide...
petris
Profil
Nerozumiem o čo ti vlastne ide...
O to, že nemůžu dostat pomocí $_REQUEST nebo $_POST obsah odeslaného formuláře, pokud atribut name zadávám proměnnou.
Zkráceně:
echo"<input type=text size=1 name='".$test."'>";
-- odeslání formuláře --
print_r($_POST[$test]);
----> nic
BetaCam
Profil
snad

echo "<input type=text size=1 name='test'>";

-- odeslání formuláře --

print_r($_POST['test']);

nebo tam jako name vkladaš obsah proměnné test??
tiso
Profil
1. kde inicializuješ premennú $test?
2. čo ti vypíše print_r($_POST)?
petris
Profil
nebo tam jako name vkladaš obsah proměnné test??
Ano. A podle výpisu, vložení do name funguje bez problémů.
BetaCam
Profil
V tom případě nejspíš nebudeš mít správně inicializovanou proměnnou $text při volání

print_r($_POST[$test]);
petris
Profil
BetaCam
V tom případě nejspíš nebudeš mít správně inicializovanou proměnnou $text při volání

print_r($_POST[$test]);


když dám:
echo $test; ---> vypíše se správně
print_r($_POST[$test]); ---> nevypíše se nic

tiso
1. proměnnou $test používám jenom tady pro zjednodušení. Vkládám tam obsah buňky pole $test = $vino[$i][1];
2. Když zadám do formuláře např. 321, vypíše to Array ( [Castelo_Medina_Verdejo] => 321 [send] => bestellen ), což je asi v pořádku! Teď mě napadá, nemůže to být těma podtržítkama? Protože $test je s mezerama...
BetaCam
Profil
V arrayi myslim nesmí název klíče obsahovat mezery.
petris
Profil
Bingo, je to ono. Když jsem odstranil mezery, tak to jede.
tiso, BetaCam, djlj - díky.

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