Gå til innhold

Hjelp til checkbox


Anbefalte innlegg

Jeg holder på å lage en side for en kunde. På siden har kunden et kontakt skjema for bestilling av konsulasjonstime, der brukeren kan skrive inn e-mail adresse, telefon og navn. dette blir så sendt til kunden min.

 

En annen plass på siden har jeg også laget et "Sett meg på mailing listen" form. Når brukeren skriver inn e-mail og navn, sendes det 2 mailer. En til kunden min, og en "Velkommen til mailing listen" mail til brukerens e-post adresse.

 

Alt fungerer helt ypperlig så langt.

 

Problemet mitt er at kunden vil ha kontakt skjemaet og mailinglisten i samme form.

 

Det skal være 2 checkboxer, der brukeren kan velge om de enten bare vil bestille en konsulasjonstime eller bare sette seg på mailing listen.

 

Eller om de både vil ha konsulasjonstime og sette seg på mailinglisten. Hvis de velger begge deler, eller bare mailingliste checkboxen så skal den "Velkommen til mailing listen" mailen bli sendt til brukeren.

 

Har de ikke huket av for å sette seg på mailing listen så skal ikke "Velkommen" mailen bli sendt ut.

 

Hvordan vil koden se ut dersom jeg skal gjøre dette? Jeg har prøvd å lage checkboxer, men "Velkommen" mailen blir sendt ut uansett hva jeg velger.

 

 

Sånn ser koden min ut i bestillings skjemaet:

 

$navn = $_REQUEST['navn'];    
 $email = $_REQUEST['email'];  
 $telefon = $_REQUEST['telefon'];  
 $message = $_REQUEST['message']; 

   $message = "Navn: $navn\nTelefon: $telefon\n\nBeskjed:\n$message"; 

mail("kunden min sin [email protected]","Bestilling av konsulasjonstime",$message,"From: $email");    
 header( "Location: http://bla.no/takkforbestillingen.htm" );

 

Og slik ser koden min ut i mailinglisten

 

<?  
 $navn = $_REQUEST['navn'];   
 $email = $_REQUEST['email'];  
 
   $message = "Navn: $navn\n\nE-mail:
$email\n";
mail("kunden min sin [email protected]","bla.no - Bli
Medlem",$message,"From: $email");

  $mail2 = $_REQUEST['email'];
  $tittel2 = "Medlemskap i bla.no";
  $message2 = "

Kjære $navn

Velkommen til bla.no
Vi er glade for å ha deg som abonnent til vår gratis elektroniske nyhetsbrevtjeneste. Du vil nå motta brev med nyheter, spesielle tilbudskampanjer og eventuelt andre viktige beskjeder vi ønsker å meddele våre kunder.
Vennlig hilsen oss på bla.no.

$header2 = "From: kunden min sin [email protected]" . "\r\n" . "Content-Type: text/html; charset=iso-8859-15";
  mail($mail2,$tittel2,$message2,$header2); 

 header( "Location: sendt2.htm" );

 

 

Jeg er veldig grønn når det kommer til php, kodene over har jeg funnet på forsjellige tutorials og forums, så jeg hadde blitt veldig glad om noen kan hjelpe meg med dette.

Endret av Garreth
Lenke til kommentar
Videoannonse
Annonse

<input type="radio" name="what" value="konsult">Konsultasjon<br>
<input type="radio" name="what" value="newsletter">Nyhetsbrev<br>
<input type="radio" name="what" value="begge">Begge<br>


$navn = $_POST['navn'];    
$email = $_POST['email'];  

$what = $_POST['what'];

if (($what=="konsult") || ($what=="begge")) {
$telefon = $_POST['telefon'];  
$message = $_POST['message']; 

$message = "Navn: $navn\nTelefon: $telefon\n\nBeskjed:\n$message"; 

mail("kunden min sin [email protected]","Bestilling av konsulasjonstime",$message,"From: $email");    
echo "Takk for bestillingen av konsultasjonstime.<br>";
}

if (($what=="newsletter") || ($what=="begge")) {
<?  
$message = "Navn: $navn\n\nE-mail:$email\n";
mail("kunden min sin [email protected]","bla.no - Bli
Medlem",$message,"From: $email");

 $mail2 = $_REQUEST['email'];
 $tittel2 = "Medlemskap i bla.no";
 $message2 = "

Kjære $navn

Velkommen til bla.no
Vi er glade for å ha deg som abonnent til vår gratis elektroniske nyhetsbrevtjeneste. Du vil nå motta brev med nyheter, spesielle tilbudskampanjer og eventuelt andre viktige beskjeder vi ønsker å meddele våre kunder.
Vennlig hilsen oss på bla.no.

$header2 = "From: kunden min sin [email protected]" . "\r\n" . "Content-Type: text/html; charset=iso-8859-15";
 mail($mail2,$tittel2,$message2,$header2); 

echo "Du vil nå motta vårt nyhetsbrev.<br>";
}

 

Det beste ville vel vært å ha 2 checkboxer egentlig i stedet for 3 radio, men kom ikke på det før jeg skrev ferdig koden... :p

 

PS! Har ikke testet koden.

Lenke til kommentar

Det ser ut som det fungerer hvis jeg har 3 radio buttons, 1-bestill time, 2-sett deg på mailingliste og 3-begge.

 

Men jeg har mer lyst å bare ha 2 radio buttons, eller checkboxer. Men det som skjer nå når jeg bare har de 2 øverste knappene, er at når du velger begge to (altså bestilling av time, og sette seg på mailing liste) så får kunden min bare en e-mail og den er den samme han får når en bruker bare setter seg på mailing listen. Dette er jo litt dumt siden han ikke vil se at brukeren også har bestillit en time.

 

Er det noen som kan hjelpe meg med det?

 

Edit: Er det mulig å få en ny "echo" når de velger begge knappene? nå har jeg prøvd å legge til den tredje knappen, men får jeg opp en feil når den skal vise at meldingen er sendt, fordi php skjemaet ikke vet hvilken av de to echo-ene den skal vise til.

Endret av Garreth
Lenke til kommentar
<form method="post" name="Form" action="">
<input type="checkbox" name="konsult">Konsultasjon<br>
<input type="checkbox" name="nyhet">Nyhetsbrev<br>
<input type="submit" name ="sndForm" value="send">
</form>
<? 
if(isset($_POST[sndForm])) {
 if($_POST["konsult"] == "on") {
      print "konsultasjon skal sendes<br>";
 }
 if($_POST["nyhet"] == "on") {
      print "nyhetsbrev skal sendes";
 }
}

Lenke til kommentar
<form method="post" name="Form" action="">
<input type="checkbox" name="konsult">Konsultasjon<br>
<input type="checkbox" name="nyhet">Nyhetsbrev<br>
<input type="submit" name ="sndForm" value="send">
</form>
<? 
if(isset($_POST[sndForm])) {
 if($_POST["konsult"] == "on") {
      print "konsultasjon skal sendes<br>";
 }
 if($_POST["nyhet"] == "on") {
      print "nyhetsbrev skal sendes";
 }
}

Nå får jeg bare mail om time bestilling når jeg bruker denne koden, selv om jeg har valgt begge knappene.

 

Kan være at jeg bruker den feil?

 HTML

<input type="checkbox" name="what" value="konsult">
<input type="checkbox" name="nyhet" value="newsletter">
<input name="submit" type="submit" class="sndForm" value="Send inn!" />

PHP

<?

$navn = $_POST['navn'];    
$email = $_POST['email'];  
$what = $_POST['what'];

if (($what=="konsult") || ($what=="begge")) {
$telefon = $_POST['telefon'];  
$message = $_POST['message']; 

$message = "Bestilling av konsultasjonstime\nNavn: $navn\nTelefon: $telefon\nEmail: $email\nBeskjed:\n$message"; 

mail("[email protected]","Bestilling av konsultasjonstime",$message,"From: $email");    
header( "Location: takk.htm" );
}

if(isset($_POST[sndForm])) {
if($_POST["konsult"] == "on") {
     print "konsultasjonstime er bestillt";
}
if($_POST["newsletter"] == "on") {
     print "nyhetsbrev skal sendes";
}
}

if (($what=="newsletter") || ($what=="begge")) { 
$message = "Navn: $navn\n\nE-mail:$email\n";
mail("[email protected]"," Jeg vil delta i mailingliste ",$message,"From: $email");

$mail2 = $_REQUEST['email'];
$tittel2 = "Velkommen til bla.no";
$message2 = "

Kjære $navn<br>
<br>
<strong>Velkommen til bla.no!</strong><br>
Vi er glade for å ha deg som abonnent til vår gratis elektroniske nyhetsbrevtjeneste. <br>

Hilsen Bla.no


";$header2 = "From: [email protected]" . "\r\n" . "Content-Type: text/html; charset=iso-8859-15";
  mail($mail2,$tittel2,$message2,$header2); 

 header( "Location: sendt2.htm" );
 
}

 
?>

 

header( "Location: takk.htm" ); og header( "Location: sendt2.htm" ); er html siden som kommer opp når brukeren har trykket submit. takk.htm er for bestilling av time, og sendt2.htm er for mailing listen.

 

Er det mulig å ha en tredje header som kan komme når brukeren velger begge valgene?

 

Håper noen skjønner den litt dårlige forklaringen min :)

Lenke til kommentar

Hmmm... du bruker den nok feil...

Navn på sjekkboksene i ditt tilfelle, er what og nyhet. Dersom disse er huket av, får de verdien "on".

if($_POST["what"] == "on") {
 //send mail for bestilling
 $konsult = true;
}
if($_POST["nyhet"] == "on") {
 // send mail for nyhetsbrev
 $nyhet = true;
}
if($konsult && $nyhet) {
 header("location:begge.php");
}
if($konsult) {
 header("location: takk.htm");
}
if($nyhet) {
 header("location: sendt.htm");
}

eller litt forkortet(akkurat det samme):

if($_POST["what"] == "on") {
 //send mail for bestilling
 $konsult = true;
}
if($_POST["nyhet"] == "on") {
 // send mail for nyhetsbrev
 $nyhet = true;
}
if($konsult && $nyhet) header("location:begge.php");
if($konsult) header("location: takk.htm");
if($nyhet) header("location: sendt.htm");

EDIT: Litt for mange $ foran nyhet :-)

Endret av kakkle
Lenke til kommentar

heh, jeg må nok bruke det feil fremdeles. Når jeg velger begge knappene nå, får ihvertfall kunden min 2 mailer. en om bestilling og en om mailingliste. flott

 

Problemet nå er at kunden min får disse 2 mailene uansett om du bare tar å velger en av knappene.

 

Headerne ser heller ikke ut til å vise.

(trenger det å være "begge.php" på den headeren som skal vise på begge?, jeg lagde bare en test side og skrev inn "begge.HTM")

 

HTLM

 

<form method="post" name="Form" action="sendmail.php">

<input type="checkbox" name="what" value="konsult">
<input type="checkbox" name="nyhet" value="newsletter">
<input name="submit" type="submit" class="sndForm" value="Send inn!" />

 

PHP skjemaet. det heter sendmail.php


<?

$navn = $_POST['navn'];    
$email = $_POST['email'];  
$what = $_POST['what'];
$telefon = $_POST['telefon'];  
$message = $_POST['message']; 

$message = "Bestilling av konsultasjonstime\nNavn: $navn\nTelefon: $telefon\nEmail: $email\nBeskjed:\n$message"; 

mail("[email protected]","Bestilling av konsultasjonstime",$message,"From: $email");    

if($_POST["what"] == "on") {
//send mail for bestilling
$konsult = true;
}
if($_POST["nyhet"] == "on") {
// send mail for nyhetsbrev
$nyhet = true;
}
if($konsult && $nyhet) header("location:begge.htm");
if($konsult) header("location: takk.htm");
if($nyhet) header("location: sendt.htm");

$message = "Navn: $navn\n\nE-mail:$email\n";
mail("[email protected]"," Jeg vil delta i mailingliste ",$message,"From: $email");

$mail2 = $_REQUEST['email'];
$tittel2 = "Velkommen til bla.no";
$message2 = "

Kjære $navn<br>

<strong>Velkommen til bla.no!</strong><br>
Vi er glade for å ha deg som abonnent til vår gratis elektroniske nyhetsbrevtjeneste. 


";$header2 = "From: [email protected]" . "\r\n" . "Content-Type: text/html; charset=iso-8859-15";
  mail($mail2,$tittel2,$message2,$header2); 
?>

Endret av Garreth
Lenke til kommentar

Hei Tror du har misforstått litt...

 

Der det i koden står

// send mail for bestilling

skal du sette inn koden for sending av mail dersom konsult er krysset av

// send mail for nyhetsbrev

Her setter du du inn koden for sending av mail dersom nyhetsbrevtingen er krysset av.

if setningene med header skal være helt til slutt i scriptet.

 

begge.php siden kan hete hva som helst...

Lenke til kommentar

når jeg satte det inn der som det står //sett inn bestilling og //sett in mail bestilling så fungerer ingen av knappene :ermm: som sagt er jeg ikke så veldig flink i PHP :whistle:

 


<?

$navn = $_POST['navn'];    
$email = $_POST['email'];  
$what = $_POST['what'];
$telefon = $_POST['telefon'];  
$message = $_POST['message']; 


if($_POST["what"] == "on") {
$message = "Bestilling av konsultasjonstime\nNavn: $navn\nTelefon: $telefon\nEmail: $email\nBeskjed:\n$message"; 
mail("[email protected]","Bestilling av konsultasjonstime",$message,"From: $email");    
$konsult = true;
}

if($_POST["nyhet"] == "on") {
$message = "Navn: $navn\n\nE-mail:$email\n";
mail("[email protected]"," Jeg vil delta i mailinglisten ",$message,"From: $email");

$mail2 = $_REQUEST['email'];
$tittel2 = "Velkommen til bla.no";
$message2 = "

Kjære $navn<br>
<br>
<strong>Velkommen til bla.no!</strong><br>
Vi er glade for å ha deg som abonnent til vår gratis elektroniske nyhetsbrevtjeneste. 

";$header2 = "From: [email protected]" . "\r\n" . "Content-Type: text/html; charset=iso-8859-15";
  mail($mail2,$tittel2,$message2,$header2); 
$nyhet = true;
}

if($konsult && $nyhet) header("location:begge.htm");
if($konsult) header("location: takk.htm");
if($nyhet) header("location: sendt.htm");

?>

Endret av Garreth
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...