05. juli 2005 - 20:36
Der er
12 kommentarer og 1 løsning
form med flere table
Hej. Kna man godt lave en form med flere tables i som her ?? : <? ob_start(); session_start(); $userid = $_SESSION['valid_user']; $del_me = $HTTP_POST_VARS['del_me']; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/JavaScript" src="dk_pns.js"></script> <script type="text/javascript"> function fillPn(f) { f.p.value = f.p.value.replace(/[^\d]/g,""); if(f.p.value.length>0){ var inx = "p"+f.p.value; if (pn[inx]) { f.b.value = pn[inx]; } else { f.b.value = "Forkert postnummer"; f.p.select(); } }else f.b.value = ""; } </script> <? require("coolmenuscript.js"); ?> <? require("popupbillede.js"); ?> <? require("stylesheet.css"); ?> </head> <? if (isset($_SESSION['valid_user']) and !$_POST['up']) { ?> <body id="body15" onLoad="populate(); setInterval(startTael,1000)"> <? } ?> <? if($_POST['up']){ ?> <body id="body14" onLoad="populate(); setInterval(startTael,1000)"> <? } ?> <? if (empty($_SESSION['valid_user'])) { ?> <body onLoad="populate(); setInterval(startTael,1000)"> <? } ?> <? include("db_kald_aaben.php"); if (empty($HTTP_SESSION_VARS['valid_user'])) { header("Location: ../login_side.php"); } ?> <? require("menutop2.php"); ?> <center> <? include("hovedtabel.html"); ?> <tr valign="top"> <td width="84%" > <? if($_POST['up']){ include("db_kald_aaben.php"); mysql_query("insert into indsaet (userid, koen, alder, bopael,p, b, tidspunkt, tidspunkt1, tidspunkt2, dato, dato1, filnavn, billede, tekst, dato_ret, skypebrugernavn) values ('$userid', '$ro[0]', '$ro[1]', '$_POST[bopael]', '$_POST[p]','$_POST[b]', '$_POST[kategori]', '$_POST[stikord]', '$_POST[tidspunkt]', '$timestamp', '$timestamp1' , now(), '$_POST[dato1]','1', '$files', '$billede', '$_POST[tekst]', '$_POST[dato1]','$ro[2]')") or die(mysql_error()); header("Location: ../index.php"); exit; } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="3%" > </td> <td class="td29" colspan="3"><br><b>Felterne skrevet med rød skrift skal udfyldes!</b><br><br></td> <td width="8%" > </td> </tr> <tr valign="top"> <td width="3%" > </td> <td width="43%" style="border-top: 1px solid #B5C6B5" style="border-left: 1px solid #B5C6B5" style="border-right: 1px solid #B5C6B5" style="border-bottom: 1px solid #B5C6B5" valign="top" > <table border="0" cellspacing="0" cellpadding="0" width="100%" valign="top"> <tr> <td class="td16" style="border-bottom: 1px solid #F39E31" BgColor='#ffffff' colspan="2" align = left width="100%" > <IMG class="IMG1" SRC="arrows_trans.gif"><b> Hvor bor jeg</b></td> </tr> </table> <table valign="top" width="100%" style="border-bottom: 1px solid #B5C6B5" > <tr> <td class=td29 align="left" style="padding-top:2px"><b> Bopæl:</b></td> <td style="padding-top:2px"><select name="bopael" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" value="<?php echo "$bopael"; ?>" > <option value="<?php echo $bopael; ?>"><?php echo $bopael; ?></option> <option value="København">København</option> <option value="Århus">Århus</option> <option value="Odense">Odense</option> </select> </td> </tr> <TR> <TD class=td23 align="left" ><b> Postnr:</b></TD> <TD ><input type="text" name="p" onblur="fillPn(this.form);" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" SIZE="8" MAXLENGTH="4" ></TD> </TR> <tr> <TD class=td23 align="left" ><b> By:</b></TD> <TD><input type="text" name="b" onfocus="this.blur();" readonly style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px"></TD> </TR> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%" valign="top"> <tr> <td class="td16" style="border-top: 1px solid #B5C6B5" style="border-bottom: 1px solid #F39E31" BgColor='#ffffff' colspan="2" align = left width="100%" > <IMG class="IMG1" SRC="arrows_trans.gif"><b> Email</b></td> </tr> </table> <table valign="top" width="100%"> <tr> <? echo " <td class=td23 width='43%' align='left' colspan='2' valign='top'><b> Marker hvis email adresse må ses:</b> <input type='checkbox' name='del_me[]' value='ja'></td> "; ?> </tr> </table> </td> <td width="1%"> </td> <td width="45%" style="border-top: 1px solid #B5C6B5" style="border-left: 1px solid #B5C6B5" style="border-right: 1px solid #B5C6B5" style="border-bottom: 1px solid #B5C6B5" valign="top" > <table border="0" cellspacing="0" cellpadding="0" width="100%" valign="top"> <tr> <td class="td16" style="border-bottom: 1px solid #F39E31" BgColor='#ffffff' colspan="2" align = left width="100%" > <IMG class="IMG1" SRC="arrows_trans.gif"><b> Hvor</b></td> </tr> </table> <table width="100%"> <tr> <td class="td29" align="left" style="padding-top:2px"><b> område:</b></td> <td style="padding-top:2px"><select name="omraade" style="font-size:9px" style="border-color:#4f3728" STYLE="height: 17px" STYLE="width: 96px" value="<?php echo "$omraade"; ?>" > <option value="<?php echo $omraade; ?>"><?php echo $omraade; ?></option> <option value="København">København</option> <option value="Århus">Århus</option> <option value="Odense">Odense</option> <option value="Ålborg">Ålborg</option> </select> </td> </tr> <tr> <td class=td23 align="left" ><b> sted:</b></td> <td><script type="text/javascript"> function checkLength(navn,max) { if (navn.value.length >= max) { navn.value = navn.value.substring(0,max-1); } } </script> <textarea name="sted" onkeydown="checkLength(this,40)" rows="2" cols="21"></textarea> </td> </tr> <tr> <td class=td23 align="left" ><b> Tidspunkt:</b></td> <td><input type="datetime" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" SIZE="10" MAXLENGTH="25" name="tidspunkt" value="<?php echo "$tidspunkt"; ?>"></td> </tr> <tr> <td colspan="2"><input type="hidden" name="tidspunkt1" value="<?php echo mktime("$tidspunkt"); ?>"></td> </tr> <tr> <td class="td18" colspan="2"><b> Angives som eks. 15-8-2005 11:15</b></td> </tr> </table> </td> <td width="8%"> </td> </tr> <tr><td height="5%" colspan="5"></tr> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="15%"> </td> <td width="21%"> </td> <td width="21%" valign="top" align="center"><br><input type="submit" STYLE="width: 96px" value="godkend" name="up"></td> <td> </td> <td width="6%" > </td> </tr> </table> </form> </td> <? include("hoejremargentest.php"); ?> </tr> </table> </center> <? include("bund.html"); ?> <script language="javascript1.2" src="menu.js"></script> </body> </html> <? ob_end_flush(); ?> Hvis ja, så har jeg nemlig problemer med scriptet : <script type="text/JavaScript" src="dk_pns.js"></script> <script type="text/javascript"> function fillPn(f) { f.p.value = f.p.value.replace(/[^\d]/g,""); if(f.p.value.length>0){ var inx = "p"+f.p.value; if (pn[inx]) { f.b.value = pn[inx]; } else { f.b.value = "Forkert postnummer"; f.p.select(); } }else f.b.value = ""; } </script> Det skal være sådan at når der indtastes forkert postnummer så kommer man ikke til en ny side før det er slettet eller rettet til et gyldigt postnummer. Det virker bare ikke. Man sendes videre uanset hvad der står !!
Annonceindlæg fra Infor
Jo du kan sagtens have flere tabeller i en form.
Hvad angår dit eksempel, så er det ikke et man bare lige sætter sig ind i. Måske skulle du for din egen skyld simplificere koden, mens du fejlfinder.
Men problemet ser ud til at være at du ikke får fanget at submit-knappen er trykket,
Prøv at gennemse følgende udemærkede eksempel på hvordan det kan gøres:
http://www.phpdebutant.com/articles/PHP-form-validation.php Held med fejlfindingen :)
Det vil spare os for en masse tid, hvis du sparede os for php-koderne, da vi så ville få langt mere overskuelig kode at arbejde med. Evt. kan du kan sætte siden op, og få browseren til at vise kildekoden, som du så poster her. Så slipper vi for php :)
"Det skal være sådan at når der indtastes forkert postnummer så kommer man ikke til en ny side før det er slettet eller rettet til et gyldigt postnummer. Det virker bare ikke. Man sendes videre uanset hvad der står !!" du kan self. finde en vej ud af problemet vha. php, men hvis man ikke må hoppe videre til en anden side, før en vis betingelse er opfyldt, ville jeg mene at javascript er mere egnet.
okay her er kildekoden.. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/JavaScript" src="dk_pns.js"></script> <script type="text/javascript"> function fillPn(f) { f.p.value = f.p.value.replace(/[^\d]/g,""); if(f.p.value.length>0){ var inx = "p"+f.p.value; if (pn[inx]) { f.b.value = pn[inx]; } else { f.b.value = "Forkert postnummer"; f.p.select(); } }else f.b.value = ""; } </script> <title>Coolmenus example - CoolMenus4 DHTML script made by Thomas Brattli from DHTMLCentral.com. Visit for more great scripts.</title> </head> <body id="body15" onLoad="populate(); setInterval(startTael,1000)"> <center> <table width="743px" height="831px" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="84%" > <form action="/index_exp.php" method="post" enctype="multipart/form-data"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="3%" > </td> <td class="td29" colspan="3"><br><b>Felterne skrevet med rød skrift skal udfyldes!</b><br><br></td> <td width="8%" > </td> </tr> <tr valign="top"> <td width="3%" > </td> <td width="43%" style="border-top: 1px solid #B5C6B5" style="border-left: 1px solid #B5C6B5" style="border-right: 1px solid #B5C6B5" style="border-bottom: 1px solid #B5C6B5" valign="top" > <table border="0" cellspacing="0" cellpadding="0" width="100%" valign="top"> <tr> <td class="td16" style="border-bottom: 1px solid #F39E31" BgColor='#ffffff' colspan="2" align = left width="100%" > <IMG class="IMG1" SRC="arrows_trans.gif"><b> Hvor bor jeg</b></td> </tr> </table> <table valign="top" width="100%" style="border-bottom: 1px solid #B5C6B5" > <tr> <td class=td29 align="left" style="padding-top:2px"><b> Bopæl:</b></td> <td style="padding-top:2px"><select name="bopael" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" value="" > <option value=""></option> <option value="København">København</option> <option value="Århus">Århus</option> <option value="Odense">Odense</option> </select> </td> </tr> <TR> <TD class=td23 align="left" ><b> Postnr:</b></TD> <TD ><input type="text" name="p" onblur="fillPn(this.form);" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" SIZE="8" MAXLENGTH="4" ></TD> </TR> <tr> <TD class=td23 align="left" ><b> By:</b></TD> <TD><input type="text" name="b" onfocus="this.blur();" readonly style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px"></TD> </TR> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%" valign="top"> <tr> <td class="td16" style="border-top: 1px solid #B5C6B5" style="border-bottom: 1px solid #F39E31" BgColor='#ffffff' colspan="2" align = left width="100%" > <IMG class="IMG1" SRC="arrows_trans.gif"><b> Email</b></td> </tr> </table> <table valign="top" width="100%"> <tr> <td class=td23 width='43%' align='left' colspan='2' valign='top'><b> Marker hvis email adresse må ses:</b> <input type='checkbox' name='del_me[]' value='ja'></td> </tr> </table> </td> <td width="1%"> </td> <td width="45%" style="border-top: 1px solid #B5C6B5" style="border-left: 1px solid #B5C6B5" style="border-right: 1px solid #B5C6B5" style="border-bottom: 1px solid #B5C6B5" valign="top" > <table border="0" cellspacing="0" cellpadding="0" width="100%" valign="top"> <tr> <td class="td16" style="border-bottom: 1px solid #F39E31" BgColor='#ffffff' colspan="2" align = left width="100%" > <IMG class="IMG1" SRC="arrows_trans.gif"><b> Hvor</b></td> </tr> </table> <table width="100%"> <tr> <td class="td29" align="left" style="padding-top:2px"><b> område:</b></td> <td style="padding-top:2px"><select name="omraade" style="font-size:9px" style="border-color:#4f3728" STYLE="height: 17px" STYLE="width: 96px" value="" > <option value=""></option> <option value="København">København</option> <option value="Århus">Århus</option> <option value="Odense">Odense</option> <option value="Ålborg">Ålborg</option> </select> </td> </tr> <tr> <td class=td23 align="left" ><b> sted:</b></td> <td><script type="text/javascript"> function checkLength(navn,max) { if (navn.value.length >= max) { navn.value = navn.value.substring(0,max-1); } } </script> <textarea name="sted" onkeydown="checkLength(this,40)" rows="2" cols="21"></textarea> </td> </tr> <tr> <td class=td23 align="left" ><b> Tidspunkt:</b></td> <td><input type="datetime" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" SIZE="10" MAXLENGTH="25" name="tidspunkt" value=""></td> </tr> <tr> <td colspan="2"><input type="hidden" name="tidspunkt1" value="1120601916"></td> </tr> <tr> <td class="td18" colspan="2"><b> Angives som eks. 15-8-2005 11:15</b></td> </tr> </table> </td> <td width="8%"> </td> </tr> <tr><td height="5%" colspan="5"></tr> <tr><td height="5%" colspan="5"></tr> </table> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td width="15%"> </td> <td width="21%"> </td> <td width="21%" valign="top" align="center"><br><input type="submit" STYLE="width: 96px" value="godkend" name="up"></td> <td> </td> <td width="6%" > </td> </tr> </table> </form> </td> <td width="14%" valign="top" align="center"> <center> <table border="0" cellspacing="0" cellpadding="5" width="743px" > <tr> <td align="center" width="82%" ><nobr><button class="inp3" onclick="document.location.href='info.php'"><b> Info </b></button> <button class="inp1" onclick="document.location.href='kontakt.php'"><b> Kontakt</b></button> <button class="inp3" onclick="document.location.href='hjaelp.php'"><b> Hjælp </b></button></td> <td width="18%"> </td> </tr> </table> </center> <script language="javascript1.2" src="menu.js"></script> </body> </html>
<ole> Hvad er det, du ikke kan få til at virke - og er du sikker på, scriptet overhovedet er beregnet til at skulle gøre, hvad du ønsker? :) /mvh </bole>
- der er ikke noget i det script, du bruger, der checker for korrekt postnummer inden submit. Det må du gøre i en separat validerings funktion ... evt. på formens onsubmit-event. Det kunne vel gøres sådan: <form ....... onsubmit="return this.p.value.match(^\d{3,4}$)">
ok kigger på det. Men ved submit skal der checkes for fejl i postnummer, og hvis det er forkert skal man ikke sendes videre til næste side. Det skulle ovenstående helst kunne. Har noget lignende i et andet script hvor det virker sådan. Der har jeg bare ikke alle de tables..
Jamen det er det med postnummer/by der er problemet, ikke det at lave en simpel form !
08. juli 2005 - 18:28
#10
Nå, men så lad os grave ned i materien... Hvis du vil have validering af din form skal du (som olebole også bemærker) have et "onsubmit" på formen. F.eks. sådan her: <form name="xyz" method="post" action="bla.php" onSubmit="return ValidateForm()"> ... </form> og så lave noget javascript som det her: <script language = "Javascript"> function ValidateForm(){ if (funktion_der_tester_at_postnummer_er_valid() == false){ alert("fejl i postnr...") postnr.focus() return false } return true } </script>
09. juli 2005 - 15:32
#11
- mit eksempel gør sådan set det samme - og består af valid kode. Hvis det skal ligge i en separat fuktion, kan du dog skrive: <script type="text/JavaScript"> function ValidateForm(f) { if (!f.p.value.match(^\d{3,4}$)) { alert("fejl i postnr..."); f.p.focus(); return false; } return true; } </script> <form action="/index_exp.php" method="post" enctype="multipart/form-data" onsubmit="return ValidateForm(this)"> - så er koden stadig valid og checker dit felt, når der submittes
10. juli 2005 - 23:16
#12
Godt så! Her er en komplet listning over en validering der virker: ----------------------------------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/JavaScript" src="dk_pns.js"></script> <script type="text/javascript"> function fillPn(f) { if (f.p.value.length > 0) { f.b.value = "Forkert postnummer"; f.p.select(); return false; }else f.b.value = ""; return true; } </script> <script language = "Javascript"> function ValidateForm() { var postnr = document.frmTest.p if (postnr.value.length > 0) { postnr.focus() document.frmTest.b.value = "Fejl i postnr" return false } return false; } </script> <title>Test</title> </head> <body> <form name="frmTest" action="xyz.php" method="post" onsubmit="return ValidateForm()"> <select name="bopael" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" value="" > <option value=""></option> <option value="København">København</option> <option value="Århus">Århus</option> <option value="Odense">Odense</option> </select> <p /> Postnr: <input type="text" name="p" onblur="fillPn(this.form);" style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px" SIZE="8" MAXLENGTH="4" > <p /> By: <input type="text" name="b" onfocus="this.blur();" readonly style="font-size:9px" STYLE="height: 17px" STYLE="width: 96px"> <p /> <input type="submit" STYLE="width: 96px" value="godkend" name="up"> </form> </body> </html>
21. september 2006 - 13:31
#13
lukker
Vi tilbyder markedets bedste kurser inden for webudvikling