Avatar billede weblance Nybegynder
01. juni 2007 - 22:40 Der er 18 kommentarer og
1 løsning

Hjælp til formular script

Jeg har en side med en tilmeldnings blanket, som skal sendes til en email når alle felter er udfyldt. I formularen er der et "List" felt hvor der kan vælges flere emner. Problemet er bare at når formularen er sendt er der kun ét emne der kommer i emailen selv om der er valgt flere. Jeg har aldrig rigtig arbejdet med dette felt før, så jeg ved ikke hvad der er galt.

Formularen ser sådan ud:

<form name="formular" method="post" action="send_tilmeld.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" class="style2">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" class="style2">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" class="style2">Postnr.:</div></td>
                                  <td><div align="left" class="style2">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" class="style2">Telefon:</div></td>
                                  <td><div align="left" class="style2">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 colspan="2"><div align="left" class="style2">Kategori der skal tilmeldes: </div>                                    <div align="left"></div></td>
                                </tr>
                                <tr class="text">
                                  <td colspan="2"><div align="left">
                                    <select name="kategori" size="5" multiple="multiple" class="textfelt" STYLE="width: 252px" id="kategori">
                                      <option value="Overnatning">Overnatning</option>
                                      <option value="Campingpladser">Campingpladser</option>
                                      <option value="Spisesteder">Spisesteder</option>
                                      <option value="Biludlejning">Biludlejning</option>
                                      <option value="Udflugter">Udflugter</option>
                                      <option value="Danske rejsebureauer">Danske rejsebureauer</option>
                                      <option value="F&aelig;r&oslash;ske rejsebureauer">F&aelig;r&oslash;ske rejsebureauer</option>
                                      <option value="Turistinformation">Turistinformation</option>
                                      <option value="Kultur">Kultur</option>
                                      <option value="Adspredelse">Adspredelse</option>
                                      <option value="Transport">Transport</option>
                                      <option value="Sport">Sport</option>
                                      <option value="Souveniers">Souveniers</option>
                                      <option value="Diverse">Diverse</option>
                                    </select>
                                    </div></td>
                                </tr>
                                <tr class="text">
                                  <td height="5" colspan="2"><div align="center" class="style1 style6">
                                    <div align="left">Hold CTRL-tasten nede for at v&aelig;lge flere kategorier!</div>
                                  </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>

Og scriptet send_tilmeld.php ser sådan ud:

<?
@$navn = addslashes($_POST['navn']);
@$adresse = addslashes($_POST['adresse']);
@$postnr = addslashes($_POST['postnr']);
@$by = addslashes($_POST['by']);
@$telefon = addslashes($_POST['telefon']);
@$email = addslashes($_POST['email']);
@$kategori = addslashes($_POST['kategori']);

$pfw_header = "From: $email\n"
  . "Reply-To: $email\n" . "X-Priority: 1\n";
$pfw_subject = "Tilmeldningsformular udfyldt på FÆRØERNE.DK";
$pfw_email_to = "email@adresse.dk";
$pfw_message = "Følgende er blevet udfyldt i tilmeldningsformularen på FÆRØERNE.DK:\n"
. "\n"
. "Navn: $navn\n"
. "Adresse: $adresse\n"
. "Postnr: $postnr\n"
. "By: $by\n"
. "Telefon: $telefon\n"
. "Email: $email\n"
. "\n"
. "Valgte kategorier:"
. "\n"
. "$kategori";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

// Returnér til forrige side
Header("Location: ".$_POST["retPage"]."?sent=OK");
?>
Avatar billede w13 Novice
01. juni 2007 - 22:59 #1
Avatar billede jensgram Nybegynder
01. juni 2007 - 23:03 #2
I.e.

<select name="kategori" size="5" multiple="multiple" class="textfe...

->

<select name="kategori[]" size="5" multiple="multiple" class="textfe...




. "Valgte kategorier:"
. "\n"
. "$kategori";


->

. "Valgte kategorier:"
foreach ($_POST['kategori'] as $k => $kategori) {
  . "\n" . addslashes($kategori);
}
Avatar billede weblance Nybegynder
01. juni 2007 - 23:22 #3
Det virker desværre ikke jensgram. Nu får jeg bare en blank side efter tryk på send og ingen email bliver afsendt.

Jeg har ændret name="kategori" til name="kategori[]"

...og send_tilmeld.php ser nu således ud:

<?
@$navn = addslashes($_POST['navn']);
@$adresse = addslashes($_POST['adresse']);
@$postnr = addslashes($_POST['postnr']);
@$by = addslashes($_POST['by']);
@$telefon = addslashes($_POST['telefon']);
@$email = addslashes($_POST['email']);

$pfw_header = "From: $email\n"
  . "Reply-To: $email\n" . "X-Priority: 1\n";
$pfw_subject = "Tilmeldningsformular udfyldt på FÆRØERNE.DK";
$pfw_email_to = "email@adresse.dk";
$pfw_message = "Følgende er blevet udfyldt i tilmeldningsformularen på FÆRØERNE.DK:\n"
. "\n"
. "Navn: $navn\n"
. "Adresse: $adresse\n"
. "Postnr: $postnr\n"
. "By: $by\n"
. "Telefon: $telefon\n"
. "Email: $email\n"
. "\n"
. "Valgte kategorier:"
foreach ($_POST['kategori'] as $k => $kategori) {
  . "\n" . addslashes($kategori);
}
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

// Returnér til forrige side
Header("Location: ".$_POST["retPage"]."?sent=OK");
?>
Avatar billede dkfire Nybegynder
02. juni 2007 - 00:31 #4
Et lille tip, prøv med print_r($_POST['kategori']) for at se hvad kategori indeholder. Det kan give dig en ide om hvordan du kan hente kategori-data ud.

Hvad giver print_r  ?
Avatar billede jensgram Nybegynder
02. juni 2007 - 11:16 #5
... og har du styr på onSubmit="validering();return false;"> ???
Avatar billede weblance Nybegynder
02. juni 2007 - 13:05 #6
Der skulle gerne være styr på onSubmit. Jeg prøvede at fjerne den, men resultatet var det samme = blank skærm efter tryk på Send.

dkfire >> hvor skal jeg bruge print_r($_POST['kategori']) henne?
Avatar billede jensgram Nybegynder
02. juni 2007 - 13:11 #7
Det kan du bare gøre lige over


@$navn = addslashes($_POST['navn']);
@$adresse = addslashes($_POST['adresse']);
@$postnr = addslashes($_POST['postnr']);
@$by = addslashes($_POST['by']);
@$telefon = addslashes($_POST['telefon']);
@$email = addslashes($_POST['email']);
@$kategori = addslashes($_POST['kategori']);
Avatar billede weblance Nybegynder
02. juni 2007 - 13:20 #8
Et print_r($_POST['kategori']) giver fx. dette:

Array ( [0] => Overnatning [1] => Campingpladser [2] => Biludlejning )
Avatar billede weblance Nybegynder
02. juni 2007 - 13:22 #9
Men jeg kan ikke se problemet . . . det burde jo virke!
Avatar billede weblance Nybegynder
02. juni 2007 - 14:01 #10
Kunne man i stedet skrive oplysningerne fra $_POST['kategori'] i en fil, hente dem frem igen og sende i emailen?

Eller er dette en idiot-løsning?
Avatar billede dkfire Nybegynder
02. juni 2007 - 20:45 #11
Det er lidt for meget arbejde.
Ahhh tror jeg kan se et lille problem

$pfw_message = "Følgende er blevet udfyldt i tilmeldningsformularen på FÆRØERNE.DK:\n"
. "\n"
. "Navn: $navn\n"
. "Adresse: $adresse\n"
. "Postnr: $postnr\n"
. "By: $by\n"
. "Telefon: $telefon\n"
. "Email: $email\n"
. "\n"
. "Valgte kategorier:"
foreach ($_POST['kategori'] as $k => $kategori) {
  . "\n" . addslashes($kategori);
}

Jeg tvivler på at din foreach løkke kan kører rigtig når du gør sådan, prøv istedet:
$pfw_message = "Følgende er blevet udfyldt i tilmeldningsformularen på FÆRØERNE.DK:\n"
. "\n"
. "Navn: $navn\n"
. "Adresse: $adresse\n"
. "Postnr: $postnr\n"
. "By: $by\n"
. "Telefon: $telefon\n"
. "Email: $email\n"
. "\n"
. "Valgte kategorier:";
foreach ($_POST['kategori'] as $key => $value) {
  $pfw_message .= "\n" . addslashes($value);
}
Avatar billede weblance Nybegynder
02. juni 2007 - 21:19 #12
dkfire >> Det var lige det der skulle til. Nu virker det!
Avatar billede dkfire Nybegynder
03. juni 2007 - 11:47 #13
Godt så.
Avatar billede jensgram Nybegynder
03. juni 2007 - 16:04 #14
dkfire > Ja, det var sgu da en brain fart fra min side :P
Avatar billede dkfire Nybegynder
04. juni 2007 - 00:36 #15
jensgram > det kan jo ske for enhver, ikke alt jeg selv er god til lige at kigge den kode jeg skriver efter inden jeg submitter. :-)
Avatar billede weblance Nybegynder
04. juni 2007 - 15:03 #16
Jeg synes nu alligevel at den er til deling mellem dkfire og jensgram. Send et sv. jensgram.
Avatar billede jensgram Nybegynder
04. juni 2007 - 15:23 #17
Nej, det synes jeg nu ikke. Ellers mange tak :)
Avatar billede weblance Nybegynder
04. juni 2007 - 16:08 #18
Det bestemmer du! Tak for hjælpen gutter.
Avatar billede jensgram Nybegynder
04. juni 2007 - 16:18 #19
Så lidt.
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