Autor Zpráva
Grogg
Profil *
S php jsem začátečník a potřeboval bych poradit s jednou primitivní věcí:
Mam jednu stránku, kde si ve formuláři vyplním proměnné:

1.stránka:
<input name=promenna1>
<input name=promenna2>

A já chci aby se ty proměnné zapsaly do jiné stránky a zůstali v ní byly zapsané dokud je nezměním.

2.stránka:
<? echo $promenna1 ?>

Jak ty stránky propojím aby ta druhá stránka věděla o proměnné z té první?

Mě osobně napadá proměnné z první stránky zapsat do souboru a z toho souboru ty proměnné do druhé stránky vypsat, ale ptám se proto, jestli neexistuje jednoduši způsob...
habendorf
Profil
Druhou stránku nastavíš jako action toho formuláře na první stránce, o odeslání se postará submit.
habendorf
Profil
A k těm proměnným pak přistupuj radši $_POST['promennax'] nebo $_GET['promennax'], podle nastavené method.
Grogg
Profil *
mohl bych dostat nějaký příklad, protože jsem opravdu začátečník a tohle zatim moc nechápu.

Já jsem to zkoušel takhle:
na první stránku (1stranka.php) jsem do formuláře dal tohle

<form action="2stranka.php">
<input name=promenna1>
<input name=promenna2>

a na druhou (2stranka.php) jsem dal jednoduše vypsat <? echo $promenna1 ?>, ale tohle nefunguje...
Hugo
Profil
Grogg

Pouzij $_POST['promenna1']
Grogg
Profil *
Zkusil jsem to takhle, ale nejde...

Stránka1:
<form action="stranka2.php" method="post">
<input name=promenna1 value="<? echo $promenna1 ?>">
<input name=promenna2 value="<? echo $promenna2 ?>">
</form>

Stránka2:
<? echo $_POST['$strelec1'] ?>

Jako chybu to na druhé stránce hlasí:
Notice: Undefined index: $promenna1 in d:\stranka\stranka2.php on line 4
Grogg
Profil *
místo <? echo $_POST['$strelec1'] ?> je <? echo $_POST['$spromenna1'] ?>
Grogg
Profil *
omluvám se, ale zase jsem to špatně napsal
správně: <? echo $_POST['$promenna1'] ?>
habendorf
Profil
Pořád ti v tom formuláři chybí submit, takže data se vůbec neodešlou.
Grogg
Profil *
Stránka1:
<form action="stranka2.php" method="post">
<input name=promenna1 value="<? echo $promenna1 ?>">
<input name=promenna2 value="<? echo $promenna2 ?>">
<input type="submit">
</form>

Stránka2:
<? echo $_POST['$promenna1'] ?>

Takhle mi to taky nejde...
Charlie
Profil
Zkuste dat jmeno inputu do uvozovek.
Charlie
Profil
A jeste lepe, na stranku 2 napiste tohle:
print_r($_POST);

Vypise vám to cele pole $_POST.
Grogg
Profil *
To pole vypíše správně.

tohle mi vypíše stránka2:
Array ( [promenna1] => jedna [promenna2] => dva)
Notice: Undefined index: $promenna1 in d:\web\stranka2.php on line 3


takhle vypadá stránka1:
<form action="stranka2.php" method="post">
<input name="promenna1" value="<? echo $promenna1 ?>"> (---- řádek 3)
<input name="promenna2" value="<? echo $promenna2 ?>">
<input type="submit">
</form>

stránka2:
<? echo $_POST['$promenna1'] ?>
habendorf
Profil
A proč se pokoušíš do value napsat proměnnou, která není ještě zadána? Nebo ji máš už někde dřív a v tom inputu ji měníš?
Dej tam prostě value="" a nebo tam value vůbec nedávej.
Hugo
Profil
<? echo $_POST['$promenna1'] ?>
tady ma byt samozrejme

<? echo $_POST['promenna1'] ?>
Grogg
Profil *
díky za pomoc bylo to timhle <? echo $_POST['$promenna1'] ?>
Grogg
Profil *
Teď jsem zjistil, že se opět dostávám k jádru problému.
Oni se ty proměnné neuloží a zůstanou na stránce jen po vyplnění a odeslání formuláře, když vypnu prohlížeš a podívám se na stránku2, tak tam ty proměnné, které jsem dříve vyplnil ve formuláři, nejsou.
Charlie
Profil
Grogg, to je pravda, proměnné platí pouze když jsou odeslány přes HTTP hlavičky, jsou v podstatě dočasné, hned potom se vymažou.
Hugo
Profil
Grogg

Pokud chces aby tam zustali i po vypnuti prohlizece, tak musis pouzit cookies, ale neni to 100% spolehlive.
Grogg
Profil *
Nejlepší je asi zapsat to do jiného souboru, že?
Fox
Profil
Spíš do databáze ale to záleží spíše na tom co chceš ukládat a jak čato se k tomu chceš dostat.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0