Autor | Zpráva | ||
---|---|---|---|
Tomashek Profil |
#1 · Zasláno: 4. 11. 2009, 12:10:21
Dobrý den,
mám formulář a chci aby se po odeslání naplnila proměnná a pak vypsala nad celým formulářem ve funkci. Jde o chybové hlášky. Zkoušel jsem to přes SESSIONS, ale u toho by byla potřeba přesměrování stránky, což nechci, protože by se vymazaly vyplňené údaje v formuláři. Zkoušel jsem to také přes GET, ale to je to stejné - vymažou se vyplněné údaje. echo $PROMENNA; if(prazny input){$PROMENNA = 'spatne';} Děkuji za rady, Tomashek |
||
Nox Profil |
#2 · Zasláno: 4. 11. 2009, 12:16:58
Takže se to má odeslat, ale vlastně nemá a pak se má po načtení před načtením vepsat hláška :)
do session si ulož a odeslané hodnoty máš přece v postu...a pokud je cílová stránka pouze skript, bez html výstupu, tak můžeš post uožit taky do session např. |
||
Majkl578 Profil |
#3 · Zasláno: 4. 11. 2009, 13:03:48
K tomu nelze říct nic jiného než že je to problém návrhu. :)
|
||
Tomashek Profil |
#4 · Zasláno: 4. 11. 2009, 13:21:00
Nox:
Není to pouze skript bohužel. Když se odešle formulář, tak se stránka nepřesměruje, ale se načte znovu. a Když to uložím do session, tak se to zobrazí až po přesměrování. Jedině že bych ty data z formuláře také uložil do session. |
||
Nox Profil |
#5 · Zasláno: 4. 11. 2009, 13:25:50
Tomashek:
Tím je to jednodušší, jelikož se po vykonání nikam nepřesměruje, tak přece máš hodnoty stále v $_POST a můžeš je do formuláře vepsat, aby tam uživatel měl, co vyplnil pak dokonce nepotřebuješ SESSION vůbec, můžeš hlášku vepsat do normální proměnné, příp. přímo do stránky |
||
unlucky Profil |
#6 · Zasláno: 4. 11. 2009, 13:30:21 · Upravil/a: unlucky
<?php if ($_POST['ok'] =="" xor !isset($_POST['ok']) ){$promenna="spatne";} ?> <form method="post" action=<?php echo "$_SERVER['REQUEST_URI']; ?>" > <input type=text name=neco> <input type=submit name=ok value=ok> </form> muzes nahradit vsude to post na get |
||
Tomashek Profil |
#7 · Zasláno: 4. 11. 2009, 14:05:34
Takhle to používám normálně, ale kdybych chtěl použít například error div, v kterém by se vypisovaly všechny chybov hlášky a ten by byl nad celým obsahem (takže by to nešlo normálně vepsat, ale bylo by to potřeba nějak dostat do toho divu - proměnné)
|
||
Nox Profil |
#8 · Zasláno: 4. 11. 2009, 14:24:06
Tomashek
V čem je problém? <?php // logická vrstva if( $_POST ){ // zpracování // nastala chyba $error = "Je to rozbitý"; } // prezentační vrstva ?> <h1>Formulář</h1> <?php if(isset($error)) echo "<div class='message_error'>$error</div>"?> <form method="post" action="..." > <input type="text" name="neco" value="<?php if($_POST) echo $_POST["neco"]?>"> ... </form> |
||
Tomashek Profil |
#9 · Zasláno: 4. 11. 2009, 15:20:49
No asi to půjde použít jenom takhle. Myslel jsem, že třeba kdyby ten Error byl možná i v nadřazeném souboru (index) a formulář v includovaném, ale to asi nepůjde.
|
||
unlucky Profil |
#10 · Zasláno: 4. 11. 2009, 15:30:46 · Upravil/a: unlucky
si to vyzkousej :P
index vypis promenne s errorem includnuty obsah kde je promenna s errorem |
||
Nox Profil |
#11 · Zasláno: 4. 11. 2009, 16:12:55
Tomashek:
Jasně že jo, to je jedno jestli se to includuje, nebo je to tam dané napevno |
||
unlucky Profil |
#12 · Zasláno: 4. 11. 2009, 16:25:23 · Upravil/a: unlucky
Nox:
„o“ Jenom bych chtel dodat, že zde záleží na poradi kde to vypisujes a kde je ta promenna |
||
Tomashek Profil |
#13 · Zasláno: 4. 11. 2009, 16:32:28
Píšu něco jinho než myslím
Index - error (promenna) include obsah,kde je ten formular a vlastne tady by se to jedine mohlo kontrolovat zda je prazdne, cili vytvoreni promenne zde |
||
Nox Profil |
#14 · Zasláno: 4. 11. 2009, 16:40:13
Klidně si ty includy odmysli a představ si, že to pokopíruješ přes ctrl+c/v do jednoho souboru
|
||
AM_ Profil |
#15 · Zasláno: 4. 11. 2009, 16:42:00
zkus na začátek toho includovaného souboru dát "global $promenna;"
ono includované soubory se chovají pokud vím jako funkce |
||
Tomashek Profil |
#16 · Zasláno: 4. 11. 2009, 16:49:53
ten global nepomohl
|
||
Nox Profil |
#17 · Zasláno: 4. 11. 2009, 17:26:43
AM:
„ono includované soubory se chovají pokud vím jako funkce“ "When a file is included, the code it contains inherits the variable scope of the line on which the include occurs. " Globál podle mě není potřeba, to by se musel používat skoro neustále |
||
AM_ Profil |
#18 · Zasláno: 4. 11. 2009, 19:33:17
Nox:
Jo, pravda, spletl jsem se; global je potřeba jen v tomhle případě: include "a.php"; //obsah: $test=1; include "b.php"; //obsah: global test; echo $test; alespoň tohle už mi bez globalu nefungovalo :) |
||
Časová prodleva: 14 let
|
0