Autor | Zpráva | ||
---|---|---|---|
petris Profil |
#1 · Zasláno: 7. 12. 2007, 23:33:17
Co je špatně na této konstrukci?
echo"<input type=text size=1 name='".$vino[$i][1]."'>"; --- --- if ($_REQUEST[$vino[$i][1]]) |
||
djlj Profil |
#2 · Zasláno: 7. 12. 2007, 23:37:49
$_REQUEST[$vino][$i][1]
|
||
tiso Profil |
#3 · Zasláno: 8. 12. 2007, 00:01:12
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 |
#4 · Zasláno: 8. 12. 2007, 08:47:33 · Upravil/a: petris
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 |
#5 · Zasláno: 8. 12. 2007, 11:13:35
petris
Asi máš prázdné $i. |
||
petris Profil |
#6 · Zasláno: 8. 12. 2007, 13:04:52 · Upravil/a: petris
petris
Asi máš prázdné $i. Nemám. Ještě jinak: $test = $vino[$i][1]; echo $test; echo"<input type=text size=1 name='".$test."'>"; print_r($_POST[$test]); |
||
djlj Profil |
#7 · Zasláno: 8. 12. 2007, 13:07:13 · Upravil/a: djlj
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 |
#8 · Zasláno: 8. 12. 2007, 13:23:26 · Upravil/a: petris
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 |
#9 · Zasláno: 8. 12. 2007, 13:54:42
Nerozumiem o čo ti vlastne ide...
|
||
petris Profil |
#10 · Zasláno: 8. 12. 2007, 14:12:30 · Upravil/a: petris
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."'>"; print_r($_POST[$test]); |
||
BetaCam Profil |
#11 · Zasláno: 8. 12. 2007, 14:19:20
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 |
#12 · Zasláno: 8. 12. 2007, 14:19:49
1. kde inicializuješ premennú $test?
2. čo ti vypíše print_r($_POST)? |
||
petris Profil |
#13 · Zasláno: 8. 12. 2007, 14:24:57 · Upravil/a: petris
nebo tam jako name vkladaš obsah proměnné test??
Ano. A podle výpisu, vložení do name funguje bez problémů. |
||
BetaCam Profil |
#14 · Zasláno: 8. 12. 2007, 14:30:28
V tom případě nejspíš nebudeš mít správně inicializovanou proměnnou $text při volání
print_r($_POST[$test]); |
||
petris Profil |
#15 · Zasláno: 8. 12. 2007, 14:42:57
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 |
#16 · Zasláno: 8. 12. 2007, 14:45:42
V arrayi myslim nesmí název klíče obsahovat mezery.
|
||
petris Profil |
#17 · Zasláno: 8. 12. 2007, 14:49:14
Bingo, je to ono. Když jsem odstranil mezery, tak to jede.
tiso, BetaCam, djlj - díky. |
||
Časová prodleva: 16 let
|
0