Avatar billede hoplaringen Nybegynder
24. februar 2011 - 15:02 Der er 3 kommentarer og
1 løsning

form action, bliv på samme side

Hej Eksperter.

Jeg sidder med en simpel formular som henviser til et simpelt php script som sender formularens indhold til en email adresse.
Jeg kunne godt tænke mig at man blev på samme side og blot fik en kommentar der om at formularen er sendt.
Kan i hjælpe mig med det.

her er koderne:
-------------------------
<form id="kontaktForm"  method="post" action="send.php">
    <p><span id="sprytextfield1">
    <label for="navn">Navn*</label>
    <input type="text" name="navn" id="navn" />
    <span class="textfieldRequiredMsg">Skal udfyldes.</span></span>
    </p><p>
    <span id="sprytextfield2">
    <label for="email">Email*</label>
    <input name="email" type="text" id="email" />
    <span class="textfieldRequiredMsg">Skal udfyldes.</span><span class="textfieldInvalidFormatMsg">Forkert udfyldt</span></span>
    </p><p>
    <label for="besked">Besked</label>
  <textarea name="besked" cols="20" rows="4"></textarea>
</p>
<input type="submit" name="send" id="send" value="send" class="knap" />
</form>
-------------------------


<?php

$msg .="Kontakt fra hjemmesiden\n";
$msg .= "Navn:                    $_POST[navn]\n";
$msg .= "Email:                  $_POST[email]\n";
$msg .="------------------------------------------------------------\n";
$msg .= "Besked:        $_POST[besked]\n";


$recipient = "mail@mail.dk";

$subject = "Kontakt fra hjemmesiden";
$mailheaders = "Fra hjemmesiden \n";
$mailheaders .= "Reply-To: $_POST[mail]";

$id = mysql_insert_id();

mail($recipient, "$subject", $msg, $mailheaders);


?>

På forhånd tak.

Mvh
Peter
24. februar 2011 - 15:38 #1
Du aendrer i formularen til action="".  Saa sendes formularen til den samme side.  Saa tilfoejer du i en if($_POST['send']) koden til at sende, derefter beskedden om at formen er sendt, og saa exit().

Naar siden foerst aabnes er betingelsen at $_POST['send'] endnu ikke opfyldt, saa det brugeren ser er formularen.  Naar der saa trykkes paa 'send' forfriskes formen, men nu er betingelsen opfyldt saa koden til at sende koeres, beskedden vises, og programmet afsluttes saaledes at brugeren ikke faar formularen at se endnu en gang.

Hvis du vil at formularen skal forblive synlig saa brugeren kan sende endnu en kommentar springer du blot exit() over.

Og tillad mig saa selv en kommentar:  Du har et par gamle spoergsmaal som du burde faa lukket.
24. februar 2011 - 15:39 #2
Den kom for hurtigt afsted.  Jeg ville have vist koden som kan se saaledes ud.

if($_POST['send'])
{
  $msg .="Kontakt fra hjemmesiden\n";
  $msg .= "Navn:                    $_POST[navn]\n";
  $msg .= "Email:                  $_POST[email]\n";
  $msg .="------------------------------------------------------------\n";
  $msg .= "Besked:        $_POST[besked]\n";


  $recipient = "mail@mail.dk";

  $subject = "Kontakt fra hjemmesiden";
  $mailheaders = "Fra hjemmesiden \n";
  $mailheaders .= "Reply-To: $_POST[mail]";

  $id = mysql_insert_id();

  mail($recipient, "$subject", $msg, $mailheaders);

  echo "Formularen er blevet sendt.  Tak for din kommentar!";

  exit();
}

<form id="kontaktForm"  method="post" action="">
    <p><span id="sprytextfield1">
    <label for="navn">Navn*</label>
    <input type="text" name="navn" id="navn" />
    <span class="textfieldRequiredMsg">Skal udfyldes.</span></span>
    </p><p>
    <span id="sprytextfield2">
    <label for="email">Email*</label>
    <input name="email" type="text" id="email" />
    <span class="textfieldRequiredMsg">Skal udfyldes.</span><span class="textfieldInvalidFormatMsg">Forkert udfyldt</span></span>
    </p><p>
    <label for="besked">Besked</label>
  <textarea name="besked" cols="20" rows="4"></textarea>
</p>
<input type="submit" name="send" id="send" value="send" class="knap" />
</form>
Avatar billede hoplaringen Nybegynder
24. februar 2011 - 20:22 #3
Super lækkert. Mange tak for din hjælp Christian.
Det virker bare....
Jeg har fået lukket de gamle spørgsmål.
Hvis du svare så skal du få dine fortjente points.
24. februar 2011 - 20:41 #4
Svar fra mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester