Avatar billede zenorph Nybegynder
17. februar 2011 - 07:51 Der er 5 kommentarer og
1 løsning

Script til hjemmeside

http://www.lrq.dk/3k kan man se, hvad jeg ønsker, og så skal det alligevel ændres lidt.

Har følgende ønsker:

Først og fremmest laves, så det kan sendes direkte fra hjemmesiden. På nuværende tidspunkt åbner den Outlook, men da det stiller krav til brugeres software, er det ikke en holdbar løsning.

* Der skal fremgå et felt, som der ikke kan skrives i, hvor datoen fremgår.

* I firmanavn, skal det være muligt at skrive helt ned til to karaterer.

* Oprette to felter, som står efter hinanden, med for- & efternavn på personen, med overskriften "Indtastet af".

* Feltet E-mail skal fjernes.
  I stedet skal der tilføjes E-mail felter ud fra punkterne:

- E-mail fakturering (PDF)
- Tilbudsavis
- Nyhedsmail

Disse E-mail felter skal dog kun blive aktive, såfremt man aktivere (vinger af), hvorefter der så kan indtastes en mailadresse.
Lille note, som oplyser, at man kan indtaste flere ved opdeling af semikolon (;).

* Punktet "Andet" skal fjernes.

* Centreres på siden.

* Postnummer & by felterne skal stå efter hinanden.

* Få alle felter til at være lige brede samlet set.

Når personen så har udfyldt det hele, og trykket send, skal der komme en side frem, hvor der står: "Du er nu tilmeldt".


Ved ikke, om den nuværende kodning kan bruges til noget, men ellers er den her:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>zenorph</title>
<script type="text/javascript">
function valider(f)
{
  var url = "?subject="+escape('Bestilling pr. mail')+"&body=BESTILLING%0A%0D%0A%0D";

  if(6>f.afsender.value.length)
  {
    alert('Du skal angive navn på afsender');
    f.afsender.select();
    f.afsender.focus();
    return false;
  }

  url += "Afsender:"+escape(" "+f.afsender.value)+"%0A%0D";

  if(6>f.adresse.value.length)
  {
    alert('Du skal angive adresse på afsender');
    f.adresse.select();
    f.adresse.focus();
    return false;
  }

  url += "Adresse:"+escape(" "+f.adresse.value)+"%0A%0D";

  if(4>f.postnummer.value.match(/^\d{4}$/))
  {
    alert('Du skal angive postnummer');
    f.postnummer.select();
    f.postnummer.focus();
    return false;
  }

  url += "Postnummer:"+escape(" "+f.postnummer.value)+"%0A%0D";

  if(2>f.by.value.length)
  {
    alert('Du skal angive by');
    f.by.select();
    f.by.focus();
    return false;
  }

  url += "By:"+escape(" "+f.by.value)+"%0A%0D";

  if(8>f.telefon.value.length)
  {
    alert('Du skal angive et telefonnummer');
    f.telefon.select();
    f.telefon.focus();
    return false;
  }

  url += "Telefon:"+escape(" "+f.telefon.value)+"%0A%0D";

  if(f.eMail.value.length>5)
  {
    url += "E-mail:"+escape(" "+f.eMail.value)+"%0A%0D";
  }

  maal = f.maalgruppe;
  maalgr="";
  for(i=0; maal.length>i; i++) if(maal[i].checked) maalgr += ((maalgr.length>1)?", " : "") + maal[i].value;

  if(4>maalgr.length)
  {
    alert('Du skal angive en eller flere ønsker');
    f.maalgruppe[0].focus();
    return false;
  }

  url += "Målgruppe:"+escape(" "+maalgr)+"%0A%0D";
  if(f.kommentar.value.length>0)
  {
    url += "Kommentar:"+escape(" "+f.kommentar.value)+"%0A%0D";
  }

  f.action += url;
  return true;
}
</script>
</head>
<body>
<form name="Bestilling_revolt" method="post" action="mailto:XXXXXXXXX" onsubmit="return valider(this)">
<table cellspacing="20" width="650">
  <tr>
    <td>
      Firmanavn:<br><input type=TEXT name="afsender" size="25"><br>
      Adresse:<br> <input type=TEXT name="adresse" size="25"><br>
      Postnummer & by:<br><input type=TEXT name="postnummer" size="4"><br>
      <input type=TEXT name="by" size="17"><br>
      Telefon:<br> <input type=TEXT name="telefon" size="25"><br>
      E-mail:<br> <input type=TEXT name="eMail" size="25"><br><br>
      <input type="checkbox" name="maalgruppe" value="E-mail fakturering (PDF)">&nbsp;E-mail fakturering (PDF)<br>
      <input type="checkbox" name="maalgruppe" value="Tilbudsavis">&nbsp;Tilbudsavis år<br>
      <input type="checkbox" name="maalgruppe" value="Nyhedsmail">&nbsp;Nyhedsmail<br>
      <input type="checkbox" name="maalgruppe" value="Andet">&nbsp;Andet<br><br>
    </td>
    <td>
      Kommentar:<br><textarea name="kommentar" rows="2" cols="20"></textarea><br>
        <p align="justify"><strong><font face="Tahoma" color="#ff0000" size="1">*</font></strong>
          Bemærk! <br>Alle punkter mærket med en rød stjerne, skal udfyldes!
        </p>
      <input type="Submit" value="Send">
      <input type="Reset" value="Slet">
    </td>
  </tr>
</table>
</form>
</body>
</html>
17. februar 2011 - 13:02 #1
Ideen med Eksperten maa vel vaere at soege hjaelp til selvhjaelp, at man selv giver sig i kast med opgaverne og saa, naar man gaar i staa, i et spoergsmaal fortaeller hvad man selv har gjort og hvor man er gaaet i staa.  Eller hvis man vil have noget lavet det faerdigt uden egen indsats saa hyrer man nogen til og betaler timeloennen.  Du siger, for eksempel, at felterne Postnummer og By skal staa efter hinanden i stedet for nedenunder hinanden.  Der maa man nok kunne forvente at spoergeren selv finder dette afsnit i koden:
     
Postnummer & by:<br><input type=TEXT name="postnummer" size="4"><br>
      <input type=TEXT name="by" size="17"><br>

og finder linieskiftet, <br>, mellem postnummer og by (eventuelt googler sig frem eller laeser en tutorial) og saa selv fjerner det.

Og "punktet 'Andet' skal fjernes.  Jamen saa find og fjern linien i koden!

Naar saa dette moralske opstoed er gjort saa maa du nok fortaelle lidt mere om hvad der skal ske med de oplysninger brugerne fylder paa formen.  Det skal "...sendes direkte fra hjemmesiden..."  Hvor skal det sendes hen, hvem skal modtage oplysningerne, og er det tilstraekkeligt med en udskrift saasom en email, eller skal oplysningerne bevares i elektronisk form saasom i en database?  Hvis du ikke vil bruge outlook, har modtageren saa en hjemmeside eller lignende at modtage det paa?
Avatar billede zenorph Nybegynder
17. februar 2011 - 14:58 #2
Jeg kunne såmænd godt rette de ting med postnr. / by, så de står på samme linje :-) Men kan ovenstående bruges, når det skal laves om?

Som du nok har opdaget, er jeg ikke den helt store programmeringshaj!

Det skal sendes til en min private email når felterne er udfyldt. Så det er nemt for mig at se, hvilke ting brugere ønsker.
Det skal ikke gemmes yderligere end det jeg får på mailen.

Der skal ikke sendes noget til brugeren selv - det er noget jeg selv manuelt gør selv senere.
Avatar billede zenorph Nybegynder
17. februar 2011 - 15:02 #3
Så har jeg lige rettet dem i hvert fald
17. februar 2011 - 18:32 #4
Du vil altsaa have at hjemmesiden sender bruger-oplysningerne til dig per email paa en let laeselig maade.  Jeg foreslaar at tage det et trin ad gangen og begynde med at faa oplysningerne i den bestaaende form sendt per email.  Naar det er paa plads vil jeg foreslaa at du selv proever at tilpasse formen som du skriver i spoergsmaalet og hvis det gaar galt saa at komme tilbage med supplerende spoergsmaal.

Jeg synes det nemmeste er at bruge php's mail funktion.  I min foreslaaede kode har jeg givet de tre checkboxe forskellige navne (jeg gaar ud fra at brugerne skal krydse mere end en af) og saa har jeg i formularen aendret action fra "mailto:xxxxxx" til "" saaledes at formen bliver sendt til den samme side naar der trykkes paa "Send".  Yderligere har jeg, for at forenkle det, midlertidigt taget valideringen vaek. 

Koden bestaar nu af to dele.  Nederst er formularen, uaendret undtagen som sagt.  Ovenover er saa koden som kun bliver koert naar der er trykket paa "Send" - den sidder i en if($_POST['Send']) blok og igen inden i et <? ?> omraade som angiver at koden er i php sproget. 

Lad mig forklare et par ting (hvis du ikke ved det allerede):

I php begynder alle variabler med $, og $_POST variablerne er det der bliver postet med en formular.

php's mail funktion tager tre variabler (og somme tider flere), foerst email-addressen, saa emnet, og saa teksten.  Hvis man placerer disse oplysninger i variablerne $til, $emne, og $tekst og saa skriver 'mail($til, $emne, $tekst) saa sendes der, hvis alt gaar vel, en email.

Saa i koden (den oeverste del) starter jeg med at definere variabler for de data der kommer fra formularen.  Derefter putter jeg min emailadresse i $til og definerer et tilfaeldigt emne i $emne, og saa bygger jeg en lang variabel $tekst med alle oplysningerne og med linieskift imellem. Til slut placerer jeg de tre variabler i mail og skriver en besked "Du er nu tilmeldt."

Da jeg testede nedenstaaende kode med min egen emailadresse i $til og fyldte formulalren ud fik jeg en nydelig email med alle oplysningerne linie for linie.

Saa jeg foreslaar foelgende:

(1)  Placer din egen email adresse i $til i stedet for XXXXXXXXX og proev koden af og forhaabenlig modtag emailen.

(2)  Naar det er i orden saa proev at tilpasse koden for formularen saa du faar de felter du vil have.  For eksempel for for- og efternavn blivere det noget med

Indtastet af (fornavn) <input type="text" name="fornavn"> (efternavn) <input type="text" name="efternavn">

og saa koden til emailen tilfoeje saadan noget som

$fornavn = $_POST['fornavn'];
$efternavn = $_POST['efternavn'];

og $tekst .= "Indtastet af $fornavn - $efternavn";

Hvis det gaar galt saa vis hvor langt du er og spoerg.

(3)  Saet valideringen ind igen.  I <form> taggen tilfoejer du onsubmit="return valider(this)" og saa kan du i din javascript skippe al url og mail koden, det er ikke laengere noedvendig.

(4)  Og saa skal du nok have noget af formatteringen tilbage som jeg stroeg for at forenkle det.  For eksempel er der ikke mere felter der er markeret med en roed stjerne.

Her er min foreslaaede (foreloebige) kode:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>zenorph</title>
</head>
<body>
<?
if($_POST['Send'])
{
    $afsender = $_POST['afsender'];
    $adresse = $_POST['adresse'];
    $postnummer = $_POST['postnummer'];
    $by = $_POST['by'];
    $telefon = $_POST['telefon'];
    if($_POST['emailfacturering']) $emailfacturering = $_POST['emailfacturering'];
    if($_POST['tilbudsavis']) $tilbudsavis = $_POST['tilbudsavis'];
    if($_POST['nyhedsmail']) $nyhedsmail = $_POST['enyhedsmail'];
    $kommentar = $_POST['kommentar'];

    $til = "XXXXXXXXXXXXXXX";
    $emne = "Tilmelding";
    $tekst = "";
    $tekst .= "Afsender: $afsender\n";
    $tekst .= "Adresse: $adresse\n";
    $tekst .= "Postnummer og by: $postnummer - $by\n";
    $tekst .= "Telefon: $telefon\n";
    $tekst .= "Valg: ";
    if($emailfacturering) $tekst .= "emailfacturering - ";
    if($tilbudsavis) $tekst .= "tilbudsavis - ";
    if($nyhedsmail) $tekst .= "nyhedsmail";
    $tekst .= "\n";
    $tekst .= "$kommentar";
    if(mail($til, $emne, $tekst)) echo "Du er nu tilmeldt";
}

else
{
?>
  <form name="Bestilling_revolt" method="post" action="">
  <table cellspacing="20" width="650">
    <tr>
      <td>
        Firmanavn:<br><input type=TEXT name="afsender" size="25"><br>
        Adresse:<br> <input type=TEXT name="adresse" size="25"><br>
        Postnummer & by:<br><input type=TEXT name="postnummer" size="4">
        <input type=TEXT name="by" size="17"><br>
        Telefon:<br> <input type=TEXT name="telefon" size="25"><br>
        <input type="checkbox" name="emailfacturering" value="E-mail fakturering (PDF)"> E-mail fakturering (PDF)<br>
        <input type="checkbox" name="tilbudsavis" value="Tilbudsavis"> Tilbudsavis år<br>
        <input type="checkbox" name="nyhedsmail" value="Nyhedsmail"> Nyhedsmail<br>
      </td>
      <td>
        Kommentar:<br><textarea name="kommentar" rows="2" cols="20">
19. februar 2011 - 20:33 #5
zenorph, tabte du modet?  Eller bare maelet?  Jeg gaar ud fra at  du modtog ovenstaaende indlaeg.  Jeg er spaendt paa din reaktion, om du kunne foelge mig, om du har proevet det af, om du har spoergsmaal,..  Jeg har som sagt forsoegt at give hjaelp til selvhjaelp, og jeg er indstillet paa, saafremt noedigt, i eventuelle efterfoelgende spoergsmaal at bistaa med senere faser. 
Hvis paa den anden side du er staaet af vil jeg bede dig lukke spoergsmaalet.  Til den ende har jeg oprettet dette indlaeg som svar.
Avatar billede zenorph Nybegynder
20. februar 2011 - 13:12 #6
Det er super.. Jeg kigger på det, og siger indtil videre tak for hjælpen :-)
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

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