Autor | Zpráva | ||
---|---|---|---|
anubis Profil * |
#1 · Zasláno: 8. 3. 2013, 10:51:23
Dobrý deň
potreboval by som poradiť ako vypísať chybovú hlášku po nevyplnení formulárového poľa na správne miesto, teraz sa mi stále vypisuje nad formulár a nie vedľa daného poľa <?php error_reporting(E_ALL ^ E_NOTICE); $posledni_stranka = 1; function check_email($email) { $atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; $domain = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; return preg_match(":^$atom+(\\.$atom+)*@($domain?\\.)+$domain\$:i", $email); } if (!$_POST) { $stranka = 0; $registrace = array(); } else { $stranka = intval($_POST["stranka"]); $form_id = (isset($_POST["form_id"]) ? intval($_POST["form_id"]) : count($_SESSION["registrace"])); $registrace = &$_SESSION["registrace"][$form_id]; $chyba = ""; // uložení vyplněných hodnot foreach ($_POST as $key => $val) { if ($key != "form_id" && $key != "zpet" && $key != "stranka") { $registrace[$key] = $val; } } if ($_POST["zpet"]) { $stranka--; } else { // kontrola vyplněných hodnot switch ($stranka) { case 0: if (!strlen($_POST["jmeno"])) { $chyba .= "Jméno nesmí být prázdné.\n"; } if (!strlen($_POST["priezvisko"])) { $chyba .= "priezvisko nesmí být prázdné.\n"; } break; case 1: if (!check_email($_POST["email"])) { $chyba .= "Vyplňte prosím e-mail.\n"; } if (!$chyba && !mysql_query("INSERT INTO uzivatele (jmeno, email) VALUES ('" . mysql_real_escape_string($registrace["jmeno"]) . "', '" . mysql_real_escape_string($registrace["email"]) . "')")) { $chyba = "Data se nepodařilo uložit."; } if (!$chyba) { header("Location: ok.php"); exit; } break; } if (!$chyba) { $stranka++; } } } // vypsání formuláře echo "<form action='' method='post'>\n"; if ($_POST) { echo "<input type='hidden' name='form_id' value='$form_id' />\n"; echo "<input type='hidden' name='stranka' value='$stranka' />\n"; if ($chyba) { echo "<p>$chyba</p>\n"; } } switch ($stranka) { case 0: echo"<table border='0'> "; echo '<tr><td>Jméno:</td><td> <input name="jmeno" value="' . htmlspecialchars($registrace["jmeno"]) . '" /></td><td>ako dat sem vypis chybocej hlasky?</td></tr>'; echo '<tr><td>Priezvisko:</td><td> <input name="jmeno" value="' . htmlspecialchars($registrace["jmeno"]) . '" /></td><td></td></tr>'; break; case 1: echo 'E-mail: <input name="email" value="' . htmlspecialchars($registrace["email"]) . '" />'; break; } echo "<tr><td></td><td><input type='submit' value='" . ($stranka < $posledni_stranka ? "Další" : "Dokončit") . "' />\n"; if ($stranka) { echo "\n<input type='submit' name='zpet' value='Zpět' />\n"; } echo "Strana: " . ($stranka + 1) . "/" . ($posledni_stranka + 1) . "\n"; echo "</form></td><tr></table>"; ?> |
||
_es Profil |
#2 · Zasláno: 8. 3. 2013, 11:03:25
anubis:
Pochybujem, že bude niekto v hlave krokovať henten PHP kód a rozmýšľať, čo možno vygeneruje. Ide o problém s HTML, tak z toho vyrob taký problém. Zo zbežného pohľadu to vyzerá na problém s počiatočnými a ukončovacími značkami. Kde začínajú a končia formulár, tabuľka, riadky, bunky? |
||
anubis Profil * |
#3 · Zasláno: 8. 3. 2013, 11:42:13
_es:
zbežného pohľadu to vyzerá na problém s počiatočnými a ukončovacími značkami. Kde začínajú a končia formulár, tabuľka, riadky, bunky? s týmto problém nie je a jedná sa o viacstrankový formulár |
||
_es Profil |
#4 · Zasláno: 8. 3. 2013, 12:19:50
anubis:
„s týmto problém nie je“ Myslím, že je. Skontroloval si si to? Pozrel si si vôbec v prehliadači, čo ti PHP skript vygeneroval? |
||
aDAm Profil |
#5 · Zasláno: 8. 3. 2013, 12:52:36
anubis:
ako dat sem vypis chybocej hlasky? co takhle ho tam dát úplně stejně jako je nahoře? if ($chyba) { echo "<p>$chyba</p>\n"; } jen si ty chyby logovat do pole a jako index např použít name toho formulářového elementu? |
||
Časová prodleva: 11 let
|
0