Avatar billede tac Nybegynder
02. august 2008 - 14:59 Der er 21 kommentarer og
1 løsning

Hjælp til at lave bestillingsformular

Hej

Jeg er med i en spejdergruppe hvor jeg laver hjemmesiden (http://www.strandboerne.dk)

Og nu kunne jeg godt tænke mig at lave en bestillingformular til bestilling af materiel.

Har lavet det her, det er sådan jeg gerne vil have det til at se ud. (http://www.strandboerne.dk/bestilling.bmp) Sætter billeder ind og laver om på farverne senere, det jeg skal have hjælp til er koderne så det kommer til at virke.

Når man så trykker send skal mailen sendes til materieludvalget.
Have tænkt mig at mailen så sådan her ud (http://www.strandboerne.dk/mail.bmp)
Altså der skal kun komme de ting med i mailen som bliver udfyldt.

Håber der er nogen der kan hjælpe mig
Avatar billede jakobdo Ekspert
02. august 2008 - 15:12 #1
Hvor meget styr har du på html ?

For selve felter er jo rene <input type="text" ...> felter.
Du kan se mere her: http://www.html.dk/artikler/00011/
Hvis du starter med at lave alle felterne, og evt. prøver at sætte dem op i en tabel, så er du nået et godt stykke.
Avatar billede tac Nybegynder
02. august 2008 - 16:39 #2
ja, jeg kan godt lave felterne (<input type="text" ...>), det er mere resten af kodningen jeg har svært ved
Avatar billede jakobdo Ekspert
02. august 2008 - 16:54 #3
Har du styr på <form action.... > osv ?
Hvis nej, så lav:

<form action="afsend.php" method="post">
DINE INPUT FELTER HER...
</form>

afsend.php
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>

Så kan du se alle data.
Så skal vi bare have dem pakket ind i en email bagefter.
Avatar billede tac Nybegynder
03. august 2008 - 00:04 #4
Så nu har jeg lavet en kode med et par input:

<form action="afsend.php" method="post">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="102%" id="AutoNumber1">
  <tr>
    <td width="25600%" colspan="9">
    <p align="center"><font size="5"><b>Bestilling af materiel</b></font></td>
  </tr>
  <tr>
    <td width="10%">&nbsp;</td>
    <td width="14%">&nbsp;</td>
    <td width="7%">&nbsp;</td>
    <td width="6%">&nbsp;</td>
    <td width="16%">&nbsp;</td>
    <td width="12%">&nbsp;</td>
    <td width="2%">
    &nbsp;</td>
    <td width="42%">&nbsp;</td>
    <td width="192%">&nbsp;</td>
  </tr>
  <tr>
    <td width="10%">&nbsp;</td>
    <td width="14%"><input type="text" name="Navn" size="12" value="Dit navn"></td>
    <td width="7%"><input type="text" name="Enhed" size="12" value="Din enhed"></td>
    <td width="6%">&nbsp;</td>
    <td width="16%">Jeg skal bruge materiellet fra</td>
    <td width="12%">
    <input type="text" name="Start" size="12" value="00/00-0000"></td>
    <td width="2%">
    Til</td>
    <td width="42%"><input type="text" name="Slut" size="12" value="00/00-0000"></td>
    <td width="192%">&nbsp;</td>
  </tr>
  <tr>
    <td width="10%">&nbsp;</td>
    <td width="14%">&nbsp;</td>
    <td width="7%">&nbsp;</td>
    <td width="6%">&nbsp;</td>
    <td width="16%">&nbsp;</td>
    <td width="12%">&nbsp;</td>
    <td width="2%">
    &nbsp;</td>
    <td width="42%">&nbsp;</td>
    <td width="192%">&nbsp;</td>
  </tr>
  <tr>
    <td width="10%">
    <p align="right">Trangia:</td>
    <td width="14%">
    <p align="left">
    <input type="text" name="Trandgia" size="12" value="Skriv antal"></td>
    <td width="7%">
    <p align="right">Økser:</td>
    <td width="6%">
    <input type="text" name="Økser" size="12" value="Skriv antal"></td>
    <td width="16%">
    <p align="right">Save:</td>
    <td width="12%">
    <input type="text" name="Save" size="12" value="Skriv antal"></td>
    <td width="2%">
    &nbsp;</td>
    <td width="42%">&nbsp;</td>
    <td width="192%">&nbsp;</td>
  </tr>
  <tr>
    <td width="10%">&nbsp;</td>
    <td width="14%">&nbsp;</td>
    <td width="7%">&nbsp;</td>
    <td width="6%">&nbsp;</td>
    <td width="16%">
    <p align="center"><input type="submit" value="Send" name="B1"></td>
    <td width="12%">&nbsp;</td>
    <td width="2%">
    &nbsp;</td>
    <td width="42%">&nbsp;</td>
    <td width="192%">&nbsp;</td>
  </tr>
</table>
</form>

afsend.php<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>

Ved ikke helt om det er sådan send knappen skal programeres

Hvordan så med alt det der mail halløj??
Avatar billede olebole Juniormester
03. august 2008 - 00:38 #5
<ole>

afsend.php kunne i princippet se ud noget à la:

<?php
$to = "bestilling@strandboerne.dk";
$subject = "Bestilling fra hjemmesiden";

$message = <<<MSGEND

*****************  Bestilling af materiel  *****************

Bestilling foretaget af: {$_POST["Navn"]} - {$_POST["Enhed"]}
Periode: {$_POST["Start"]} - {$_POST["Slut"]}

==============================================================

Trangia: {$_POST["Trangia"]} stk
Save: {$_POST["Save"]} stk
Økser: {$_POST["Oekser"]} stk

MSGEND;

$headers  = "MIME-Version: 1.0\n\n"
          . "Content-Type: text/plain; charset=utf-8; format=flowed\n\n";
          . "Content-Transfer-Encoding: 8bit\n\n"
          . "X-Mailer: PHP\n\n";


if ( mail($to, $subject, $message, $headers) ) {
    header("Location: thanx.php");
}
else header("Location: bestilling.php");
?>

/mvh
</bole>
Avatar billede olebole Juniormester
03. august 2008 - 00:39 #6
- undgå specialtegn i name attributterne på formfelterne.
Dvs. ikke name="Økser" - men f.eks. name="Oekser"  ;o)
Avatar billede olebole Juniormester
03. august 2008 - 00:42 #7
Beskeden begynder lige under linjen:
    $message = <<<MSGEND

- og slutter lige over linjen:
    MSGEND;

Indholdet af et formfelt får du i denne syntaks fat i med {$_POST["FELT_NAVN"]}
Det burde være til at finde ud af  =)
Avatar billede tac Nybegynder
03. august 2008 - 12:05 #8
nu har jeg lavet det som du har beskrevet, men det melder fejl ved afsend.php. den skriver:

Parse error: syntax error, unexpected '.' in /hsphere/local/home/strandbo/strandboerne.dk/afsend.php on line 22

vil det sige at der er noget ved denne line den ikke kan lide:
. "Content-Transfer-Encoding: 8bit\n\n"
Avatar billede dkfire Nybegynder
03. august 2008 - 12:32 #9
Du skal lige slette det ; som står sidst på linjen før.
Avatar billede tac Nybegynder
03. august 2008 - 12:49 #10
ok. Nu bruger jeg en afsend.php som ser sådan ud:

<?php
$to = "bestilling@strandboerne.dk";
$subject = "Bestilling fra hjemmesiden";

$message = <<<MSGEND

*****************  Bestilling af materiel  *****************

Bestilling foretaget af: {$_POST["Navn"]} - {$_POST["Enhed"]}
Periode: {$_POST["Start"]} - {$_POST["Slut"]}

==============================================================

Trangia: {$_POST["Trangia"]} stk
Save: {$_POST["Save"]} stk
Økser: {$_POST["Oekser"]} stk

MSGEND;

$headers  = "MIME-Version: 1.0\n\n"
          . "Content-Type: text/plain; charset=utf-8; format=flowed\n\n"
          . "Content-Transfer-Encoding: 8bit\n\n"
          . "X-Mailer: PHP\n\n";


if ( mail($to, $subject, $message, $headers) ) {
    header("Location: thanx.php");
}
else header("Location: bestilling.php");
?>

Men den siger bare at siden ikke kan vises

Prøv evt. selv her (http://www.strandboerne.dk/pp.html)
Avatar billede dkfire Nybegynder
03. august 2008 - 13:05 #11
Det skyldes nok nærmere at du sikkert ikke har en fil som hedder thanx.php eller bestilling.php
Avatar billede tac Nybegynder
03. august 2008 - 13:22 #12
Det har jeg lavet nu hehe... Men jeg kommer over på siden bestilling.php. og det vil sige at den ikke har sendt det ikk???
Avatar billede jakobdo Ekspert
03. august 2008 - 19:39 #13
Ja, eller at du skal tilføje exit(); efter header(...);
Så det bliver:

if ( mail($to, $subject, $message, $headers) ) {
    header("Location: thanx.php");
    exit();
}
else{
    header("Location: bestilling.php");
    exit();
}
Avatar billede tac Nybegynder
03. august 2008 - 21:36 #14
Jeg har fået det til at virke ved at bruge:

$header  = "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";

Men når et problem er løst kommer der et nyt hehe.

I den mail jeg får står der

"Save: Skriv antal stk"
Jeg ville gerne have den til kune at sende de felter der var udfyldt. så jeg vil slette "Skriv antal" som står i felterne  i starten. og så lave noget kode al det her:

if ({$_POST["Trangia"]}) {
Trangia:  {$_POST["Trangia"]} stk }

Men det kan man åbenbart ikke får så skriver den if i min mail
Avatar billede tac Nybegynder
03. august 2008 - 21:56 #15
og den skriver også det der er skrevet i feltet altså:

if 1 {
Trangia: 1 stk }
Avatar billede tac Nybegynder
03. august 2008 - 21:56 #16
i mailen :)
Avatar billede olebole Juniormester
03. august 2008 - 22:16 #17
Nej, du kan ikke have if-sætninger i 'here-doc' syntaks ... men du kan f.eks:

$trangia = isset($_POST["Trangia"]) ? $_POST["Trangia"] : 0;
$save = isset($_POST["Save"]) ? $_POST["Save"] : 0;
$oekser = isset($_POST["Oekser"]) ? $_POST["Oekser"] : 0;

$message = <<<MSGEND

*****************  Bestilling af materiel  *****************

Bestilling foretaget af: {$_POST["Navn"]} - {$_POST["Enhed"]}
Periode: {$_POST["Start"]} - {$_POST["Slut"]}

==============================================================

Trangia: $trangia stk
Save: $save stk
Økser: $oekser stk

MSGEND;
Avatar billede olebole Juniormester
03. august 2008 - 22:17 #18
Så vil den f.eks. skrive:

Trangia: 5 stk
Save: 0 stk
Økser: 12 stk
Avatar billede tac Nybegynder
07. august 2008 - 17:30 #19
Jeps nu virker det som jeg gerne vil have det til, læg et svar olebole og så vil du få dine point
Avatar billede olebole Juniormester
07. august 2008 - 22:53 #20
Det kommer her  ;o)
Avatar billede olebole Juniormester
09. august 2008 - 17:21 #21
Tak for points  =)
Avatar billede stumpz Nybegynder
10. maj 2009 - 14:32 #22
Hej tac er det muligt at du kan dele ud af din bestillings formular? da jeg står og skal bruge en

hvis det er må du gerne sende den til dj-stump@hotmail.com :)
så får du nogle points for det
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