20. juli 2006 - 14:17
Der er
10 kommentarer og 1 løsning
Hvordan laver jeg formular om til "besked sendt"?
Jeg har en kontaktformular hvor der vises en linie med teksten "Beskeden er sendt" efter at brugeren har trykket på send. Hvordan kan jeg lave det sådan at kontaktformularen bliver erstattet med teksten "Beskeden er sendt" i stedet for, altså bliver formularen fjernet fra siden efter at der er trykket på send? Formularen ser således ud: <form name="formular" method="post" action="send.php" onSubmit="validering();return false;"> <div align="left"> <?=$msgTxt?> <img src="images/tom.gif" width="0" height="0"></div> <table width="265" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="right" valign="middle"><table width="260" border="0" cellspacing="0" cellpadding="0"> <tr class="text"> <td width="141"><div align="left">Navn:</div></td> <td width="122"><div align="left"></div></td> </tr> <tr class="text"> <td colspan="2"><div align="left"> <input name="navn" type="text" class="textfelt" id="navn" size="48"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Adresse</div></td> <td><div align="left"></div></td> </tr> <tr class="text"> <td colspan="2"><div align="left"> <input name="adresse" type="text" class="textfelt" id="adresse" size="48"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Postnr.</div></td> <td><div align="left">By</div></td> </tr> <tr class="text"> <td width="141"><div align="left"> <input name="postnr" type="text" class="textfelt" id="postnr"> </div></td> <td><div align="left"> <input name="by" type="text" class="textfelt" id="by"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Telefon</div></td> <td><div align="left">Email</div></td> </tr> <tr class="text"> <td width="141"><div align="left"> <input name="telefon" type="text" class="textfelt" id="telefon"> </div></td> <td><div align="left"> <input name="email" type="text" class="textfelt" id="email"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Besked</div></td> <td><div align="left"></div></td> </tr> <tr class="text"> <td colspan="2"><div align="left"> <textarea name="besked" cols="46" rows="4" class="textfelt" id="besked"></textarea> </div></td> </tr> <tr class="text"> <td height="5" colspan="2"><img src="images/tom.gif" width="10" height="5"></td> </tr> <tr class="text"> <td colspan="2"><div align="center"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" height="22"><div align="center"> <input name="Submit" type="submit" class="knap" value="Send"> </div></td> <td width="50%"><div align="center"> <input name="Reset" type="reset" class="knap" value="Nulstil"> <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>"> </div></td> </tr> </table> </div></td> </tr> </table></td> </tr> </table> </form>
Annonceindlæg fra Barco
Og filen send.php ser således ud: <? // Receiving variables @$navn = addslashes($_POST['navn']); @$adresse = addslashes($_POST['adresse']); @$postnr = addslashes($_POST['postnr']); @$by = addslashes($_POST['by']); @$telefon = addslashes($_POST['telefon']); @$email = addslashes($_POST['email']); @$besked = addslashes($_POST['besked']); //Sending Email to form owner $pfw_header = "From: $email\n" . "Reply-To: $email\n" . "X-Priority: 1\n"; $pfw_subject = "Kontaktformular"; $pfw_email_to = "mail@adresse.dk"; $pfw_message = "Følgende er blevet udfyldt i kontaktformularen:\n" . "\n" . "Navn: $navn\n" . "Adresse: $adresse\n" . "Postnr: $postnr\n" . "By: $by\n" . "Telefon: $telefon\n" . "Email: $email\n" . "\n" . "Besked:" . "\n" . "$besked\n"; @mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ; //saving record in a text file $pfw_file_name = "kontaktformular.csv"; $pfw_first_raw = "navn,adresse,postnr,by,telefon,email,besked\r\n"; $pfw_values = "$navn,$adresse,$postnr,$by,$telefon,$email,".str_replace ("\r\n","<BR>",$besked )."\r\n"; $pfw_is_first_row = false; if(!file_exists($pfw_file_name)) { $pfw_is_first_row = true ; } if (!$pfw_handle = fopen($pfw_file_name, 'a+')) { die("Cannot open file ($pfw_file_name)"); exit; } if ($pfw_is_first_row) { if (fwrite($pfw_handle, $pfw_first_raw ) === FALSE) { die("Cannot write to file ($pfw_filename)"); exit; } } if (fwrite($pfw_handle, $pfw_values) === FALSE) { die("Cannot write to file ($pfw_filename)"); exit; } fclose($pfw_handle); // Returnér til forrige side Header("Location: ".$_POST["retPage"]."?sent=OK"); ?>
F.eks.: <? if(isset($_GET['sent']) && $_GET['sent'] == "OK")) { echo "Beskeden er sendt."; } else { ?> -- DIN FORM HER -- <? } ?>
Der er jo selvfølgelig osse denne tekst i toppen af kontaktsiden: <? if (isset($_GET["sent"]) && $_GET["sent"]=="OK") $msgTxt = "<div style='color:red;font-weight:bold'>Din besked er nu sendt!</div>"; ?>
Det er ret det samme princip, så skal du bare bytte lidt rundt på det og lave en "else".
Nu har jeg prøvet og det giver bare en blank side :(
Så gør du det forkert. Gider du paste det du har lavet?
<? if(isset($_GET['sent']) && $_GET['sent'] == "OK")) { echo "Beskeden er sendt."; } else { ?> <p>Benyt denne online formular - alle felter skal udfyldes!</p> <form name="formular" method="post" action="send.php" onSubmit="validering();return false;"> <div align="left"> <img src="images/tom.gif" width="0" height="0"></div> <table width="265" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="right" valign="middle"><table width="260" border="0" cellspacing="0" cellpadding="0"> <tr class="text"> <td width="141"><div align="left">Navn:</div></td> <td width="122"><div align="left"></div></td> </tr> <tr class="text"> <td colspan="2"><div align="left"> <input name="navn" type="text" class="textfelt" id="navn" size="48"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Adresse</div></td> <td><div align="left"></div></td> </tr> <tr class="text"> <td colspan="2"><div align="left"> <input name="adresse" type="text" class="textfelt" id="adresse" size="48"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Postnr.</div></td> <td><div align="left">By</div></td> </tr> <tr class="text"> <td width="141"><div align="left"> <input name="postnr" type="text" class="textfelt" id="postnr"> </div></td> <td><div align="left"> <input name="by" type="text" class="textfelt" id="by"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Telefon</div></td> <td><div align="left">Email</div></td> </tr> <tr class="text"> <td width="141"><div align="left"> <input name="telefon" type="text" class="textfelt" id="telefon"> </div></td> <td><div align="left"> <input name="email" type="text" class="textfelt" id="email"> </div></td> </tr> <tr class="text"> <td width="141"><div align="left">Besked</div></td> <td><div align="left"></div></td> </tr> <tr class="text"> <td colspan="2"><div align="left"> <textarea name="besked" cols="46" rows="4" class="textfelt" id="besked"></textarea> </div></td> </tr> <tr class="text"> <td height="5" colspan="2"><img src="images/tom.gif" width="10" height="5"></td> </tr> <tr class="text"> <td colspan="2"><div align="center"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" height="22"><div align="center"> <input name="Submit" type="submit" class="knap" value="Send"> </div></td> <td width="50%"><div align="center"> <input name="Reset" type="reset" class="knap" value="Nulstil"> <input type="hidden" name="retPage" value="<?=$_SERVER["PHP_SELF"]?>"> </div></td> </tr> </table> </div></td> </tr> </table></td> </tr> </table> </form> <? } ?>
Du har lige en ) for meget, sådan her skal toppen være (har også indsat, så din tekst kommer til at se ud som den hele tiden har været): <? if(isset($_GET['sent']) && $_GET['sent'] == "OK") { "<div style='color:red;font-weight:bold'>Din besked er nu sendt!</div>"; } else { ?> <p>Benyt denne online formular - alle felter skal udfyldes!</p> ...
Hov, nej - sådan her selvf. (der manglede et echo): <? if(isset($_GET['sent']) && $_GET['sent'] == "OK") { echo "<div style='color:red;font-weight:bold'>Din besked er nu sendt!</div>"; } else { ?> <p>Benyt denne online formular - alle felter skal udfyldes!</p>
20. juli 2006 - 14:48
#10
Tak - det var lige det der skulle gøres!! Send et svar, så skal du da havde nogle pt's!
20. juli 2006 - 14:49
#11
Selv tak :)
Vi tilbyder markedets bedste kurser inden for webudvikling