Autor | Zpráva | ||
---|---|---|---|
BunnyBugs6 Profil * |
#1 · Zasláno: 4. 2. 2010, 00:11:48
Zdravím, potřeboval bych poradit se zobrazením odeslaného formuláře, resp. špatně vyplněného formuláře.
Když mi někdo nevyplní povinné políčko ve formuláři, tak se mu pomocí příkazu "echo" zobrazí na nové stránce o tom hláška. Jak docílit toho, aby se ta hláška vypsala třeba hned pod ten formulář? a zároveň už vyplněná pole zůstala vyplněná? Díky za radu. |
||
baklazan Profil * |
#2 · Zasláno: 4. 2. 2010, 05:41:44
Co tak spracuvajuci skript a formular dat do jedneho php suboru a action vo forme nechat prazdny ?
|
||
dan55 Profil |
#3 · Zasláno: 4. 2. 2010, 07:36:46 · Upravil/a: dan55
Formulář přesměrovat přes header, např. takto
header("Location:formular.php?chyba=1"); a na stránce formulář zjistit jestli hláška je 1 a vypsat formulář i hlášku |
||
breeta Profil * |
#4 · Zasláno: 4. 2. 2010, 08:42:30
Podívej se sem
|
||
BunnyBugs6 Profil * |
#5 · Zasláno: 4. 2. 2010, 16:48:36
Tak už jsem to provedl na jeden soubor PHP s tím, že ACTION jsem nechal prázdný, funguje to, ale mám zase dva problémy:
1) když nevyplním povinné pole, tak mám sice hlášku vypsanou na začátku formuláře, ale data ve formuláři jsou zase prázdná, takže se musí vše vyplnit znovu :-( ... jak tohle mám ošetřit? 2) pokud je vše o.k. a formulář se odešle, objeví se hláška o úspěšnosti, ale opět je tam zobrazen prázdný formulář, tak jak zobrazit pouze samotnou hlášku? samozřejmě v původním obsahu? (formulář je umístěn v obsahu mezi levým a pravým menu) Díky za pomoc. |
||
panther Profil |
#6 · Zasláno: 4. 2. 2010, 16:56:50
BunnyBugs6:
„jak tohle mám ošetřit?“ vyplňuj atribut „value“ u jednotlivých polí: <input type="text" name="policko" value="<?php echo $_POST/$_GET['policko'] ?>"> „tak jak zobrazit pouze samotnou hlášku?“ buď na samostatné stránce, nebo formulář skryj. Resp. udělej podmínku ve smyslu: if(vsechno vyplneno) {echo "ok";} else { ?> <form> ... </form> <?php } ?> |
||
BunnyBugs6 Profil * |
[#6] panther
Tak bohužel nefunguje ani jedno, nevím, co dělám špatně. Pro kontrolu zde uvádím celý kód stránky, tak prosím poraďte (je ten formulář o dost položek očesaný, aby nebyl tak dlouhý, však se to tam jen opakuje, podstata je daná): <div id="form"> <?php if (isset($_POST['odeslani'])) { $jmeno = $_POST['jmeno']; $varianta = $_POST['varianta']; $barva = $_POST['barva']; $komentar = $_POST['komentar']; if ($jmeno=="") { echo "<h2>Nebylo vyplněno pole JMÉNO!</h2>"; } elseif ($varianta=="---") { echo "<h2>Nebylo vyplněno pole VARIANTA!</h2>"; } elseif ($barva=="---") { echo "<h2>Nebylo vyplněno pole BARVA!</h2>"; } else { $odeslani = mail("webmaster@mkgips.cz", "Logo JMR TRIO s.r.o.", "\nJméno: $jmeno\nVarianta: $varianta\nBarva: $barva\nKomentář: $komentar"); if ($odeslani) { echo "<h3>Formulář byl úspěšně odeslán.</h3>"; } } } ?> <form action="" method="post"> <table> <tr><td>Tvé jméno:</td><td><input type="text" name="jmeno" size="30"></td></tr> <tr height="30px"></tr> <tr><td>Varianta loga:</td><td><select size="1" name="varianta"> <option selected>---</option> <option>Varianta 1</option> <option>Varianta 2</option> <option>Varianta 3</option> <option>Varianta 4</option> </select></td></tr> <tr><td>Barevnost:</td><td><select size="1" name="barva"> <option selected>---</option> <option>Barevnost "A"</option> <option>Barevnost "B"</option> <option>Barevnost "C"</option> <option>Barevnost "D"</option> </select></td></tr> <tr height="30px"></tr> <tr><td>Tady to můžeš<br />okomentovat:</td><td><textarea rows="6" name="komentar" cols="38"></textarea></td></tr> <tr><td></td><td><input type="submit" name="odeslani" value="Odeslat"> <input type="reset" value="Vyčistit formulář" name="vycistit"></td></tr> </table> </form> </div> Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
Koudis Profil * |
#8 · Zasláno: 5. 2. 2010, 21:31:20
ja bych to udělal přes AJAX .. je to rychlé a celkem elegantní .. když si třídy v JS napíšete přehladně dá se to velice snadno udržovat a má to větší možnosti :)
|
||
Alphard Profil |
#9 · Zasláno: 5. 2. 2010, 22:16:47
Koudis:
„ja bych to udělal přes AJAX .. je to rychlé a celkem elegantní“ Stejně musí to musí být funkční i bez javascriptu, takže tohle není řešení. „když si třídy v JS napíšete přehladně dá se to velice snadno udržovat a má to větší možnosti“ Tohle radíte začátečníkovi, který má problémy poskládat pár podmínek dohromady... BunnyBugs6: Formulář přesuňte do větve podmínky, která ověřuje správnost vyplnění. Pak se nebude zobrazovat po správném odeslání. Pro předvyplnění hodnot je potřeba využít ty odeslané a upravit formulář, tj. místo <option selected>---</option> dát třeba <option selected>Varianta 3</option> předvyplnit textareu apod. <textarea rows="6" name="komentar" cols="38"><?php if(isset($_POST['komentar'])) echo $_POST['komentar']; ?></textarea> |
||
Koudis Profil |
#10 · Zasláno: 5. 2. 2010, 22:33:53
.. jo no .. to mě nenapadlo :) ... ale aspon ted zná slovo AJAX, jsem zvyklí se pohybova mezi lidmi kteří celí život nedělají nic jiného než programuj programuj atd .. takže mě netrkne že taky existují lidé kteří začínají s programováním/scriptováním ...
|
||
Časová prodleva: 15 let
|
0