Formulier twee pagina's en dropdown menu.

Status
Niet open voor verdere reacties.

hiddevk

Gebruiker
Lid geworden
16 nov 2007
Berichten
58
Goedenmiddag,

Voor mijn webdesign site heb ik een formulier om een offerte aan te vragen gemaakt. Nu heb ik het plan opgevat om het formulier langer te maken, met extra vragen. Op dit moment is dit de situatie:
Er zijn verschillende invulvelden:
Voornaam
Achternaam
Adres
Postcode
Woonplaats
E-mail-adres
Telefoonnummer

Hier staat een dropdown menu met verschillende opties:
Webdesign
SEO
Grafische Vormgeving
Webmarketing
Webshop
CMS
en een vinkje:
Ik ga akkoord met de algemene voorwaarden

Nu wil ik op basis van de geselecteerde optie bij het dropdown menu bepalen naar welke pagina je wordt doorverwezen als je op de "Verstuur" knop klikt.

Misschien voel je het al aankomen; op deze pagina staan nog meer invulvelden die ook verstuurd moeten worden. Nu is het probleem; hoe zorg ik ervoor dat het formulier op pagina 1 en het formulier op pagina 2 als één formulier verzonden worden?
 
Je kan alle gegevens wegschrijven in een database - bijvoorbeeld met PHP - en dan aan het eind van de procedure verzenden.
 
Ja, maar hoe?

Oké, dan doe ik dat. Ik heb wel een database bij mijn site. Hoe kan ik het wegschrijven naar database en dan verzenden? Kan ik dan nog wel mijn php mail script gebruiken die de verschillende velden allemaal een variabele geeft, en dat je deze variabele kan gebruiken in een bericht dat je zelf schrijft? Deze code gebruik ik op dit moment daarvoor:
PHP:
<?php
/* Subject and Email Variables */


	$emailSubject = 'Offerteaanvraag HierDeSite';
	$webMaster = 'postmaster@HierDeSite.nl';
	
/* Gathering Data Variables */

	$voornaam = $_POST['voornaam'];
	$achternaam = $_POST['achternaam'];
	$adres = $_POST['adres'];
	$nummer = $_POST['nummer'];
	$postcode = $_POST['postcode'];
	$postcodeletters = $_POST['postcodeletters'];
	$woonplaats = $_POST['woonplaats'];
	$emailadres = $_POST['emailadres'];
	$netnummer = $_POST['netnummer'];
	$telefoonnummer = $_POST['telefoonnummer'];
	$dienst = $_POST['dienst'];
	$checkbox = $_POST['checkbox'];
	
	$body = <<<EOD
<br><hr><br>
$voornaam $achternaam heeft een offerte aangevraagd via hierdesite.nl. <br>
De dienst waar $voornaam een offerte heeft aangevraagd is $dienst.<br>
$voornaam woont op de $adres $nummer in $woonplaats.<br>
Als je een offerte via de post op wil sturen heb je<br>
natuurlijk ook een postcode nodig. De postcode van $voornaam<br>
is $postcode $postcodeletters en natuurlijk nog steeds in<br>
$woonplaats. Als je wilt bellen is $netnummer $telefoonnummer.<br>
E-mailen kan uiteraard ook, stuur een reply op deze mail of naar<br>
$emailadres.<br>
<br>
Met vriendelijke groeten,<br>
Hierdesite.nl
EOD;

	$headers = "From: $emailadres\r\n";
	$headers .= "Content-type: text/html\r\n";
	$success = mail($webMaster, $emailSubject, $body, $headers);
	
/* Results rendered as HTML */

	$theResults = <<<EOD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hierdesite</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<style type="text/css">
<!--
body {
background-image: url(achtergrond.png);
	background-repeat: repeat-x;
	margin-bottom: 0cm;
	margin-left: 0px;
	margin-top: 27px;
	margin-right: 0px;
	background-color: #74c3ff;
}
body,td,th {
	font-family: Geneva, Arial, Helvetica, sans-serif;
	font-size: 12px;
}
-->
</style></head>
<body bgcolor="#FFFFFF">
<!-- ImageReady Slices (layouthierdesite.psd) -->
<table width="801" border="0" align="center" cellpadding="0" cellspacing="0" id="Table_01">
<tr>
		<td colspan="15" align="center" valign="bottom">
			<img id="index_01" src="images/index_01.png" width="800" height="17" alt="" /></td>
<td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="17" alt="" /></td>
  </tr>
	<tr>
		<td colspan="2" rowspan="5" align="center" valign="bottom" background="images/index_02.png">&nbsp;</td>
  <td colspan="2" align="center" valign="bottom">
			<a href="index.html" target="_self"><img src="images/index_03.png" alt="" width="90" height="21" border="0" id="index_03" /></a></td>
<td rowspan="2" align="center" valign="bottom">
			<img id="index_04" src="images/index_04.png" width="4" height="22" alt="" /></td>
  <td align="center" valign="bottom">
			<a href="diensten.html" target="_self"><img src="images/index_05.png" alt="" width="90" height="21" border="0" id="index_05" /></a></td>
<td rowspan="2" align="center" valign="bottom">
			<img id="index_06" src="images/index_06.png" width="4" height="22" alt="" /></td>
  <td align="center" valign="bottom">
			<a href="portfolio.html" target="_self"><img src="images/index_07.png" alt="" width="90" height="21" border="0" id="index_07" /></a></td>
<td rowspan="2" align="center" valign="bottom">
			<img id="index_08" src="images/index_08.png" width="4" height="22" alt="" /></td>
  <td align="center" valign="bottom">
			<a href="offerte.html" target="_self"><img src="images/index_09.png" alt="" width="90" height="21" border="0" id="index_09" /></a></td>
<td rowspan="2" align="center" valign="bottom">
			<img id="index_10" src="images/index_10.png" width="4" height="22" alt="" /></td>
  <td colspan="2" align="center" valign="bottom">
			<a href="contact.html" target="_self"><img src="images/index_11.png" alt="" width="90" height="21" border="0" id="index_11" /></a></td>
  <td colspan="2" rowspan="2" align="center" valign="bottom">&nbsp;</td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="21" alt="" /></td>
  </tr>
	<tr>
		<td colspan="2" align="center" valign="bottom">
			<img id="index_13" src="images/index_13.png" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img id="index_14" src="images/index_14.png" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img id="index_15" src="images/index_15.png" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img id="index_16" src="images/index_16.png" width="90" height="1" alt="" /></td>
  <td colspan="2" align="center" valign="bottom">
			<img id="index_17" src="images/index_17.png" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="1" alt="" /></td>
  </tr>
	<tr>
		<td colspan="12" align="center" valign="bottom" background="images/index_18.png">&nbsp;</td>
  <td rowspan="5" align="center" valign="bottom">&nbsp;</td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="36" alt="" /></td>
  </tr>
	<tr>
		<td colspan="12" align="center" valign="bottom" background="images/index_20.png">&nbsp;</td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="74" alt="" /></td>
  </tr>
	<tr>
		<td rowspan="3" align="center" valign="bottom" background="images/index_21.png">&nbsp;</td>
  <td colspan="9" rowspan="3" align="center" valign="middle" background="images/index_22.png"><p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>Uw offerteaanvraag is verzonden, u krijgt zo snel mogelijk via e-mail de offerte toegestuurd!</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p></td>
  <td colspan="2" rowspan="3" align="center" valign="bottom" background="images/index_23.png">&nbsp;</td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="75" alt="" /></td>
  </tr>
	<tr valign="bottom">
		<td rowspan="2" align="center" valign="bottom" background="images/index_24.png">&nbsp;</td>
  <td align="center" valign="bottom" background="images/index_25.png">&nbsp;</td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="368" alt="" /></td>
  </tr>
	<tr>
		<td align="center" valign="bottom">
			<img id="index_26" src="images/index_26.png" width="173" height="8" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="1" height="8" alt="" /></td>
  </tr>
	<tr>
		<td align="center" valign="bottom">
			<img src="images/spacer.gif" width="92" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="173" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="11" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="79" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="4" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="4" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="4" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="90" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="4" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="75" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="15" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="3" height="1" alt="" /></td>
  <td align="center" valign="bottom">
			<img src="images/spacer.gif" width="66" height="1" alt="" /></td>
	  <td align="center" valign="bottom"></td>
  </tr>
</table>
<!-- End ImageReady Slices -->
</body>
</html>
EOD;
echo "$theResults";
?>

Bedankt!
 
En hoe dan?

Ik denk nu dat ik dit moet doen:

Via verschillende invulvelden de volgende informatie verzamelen:
De voornaam van de persoon
De achternaam van de persoon
De straatnaam van de persoon
Het huisnummer van de persoon
De postcode-cijfers van de persoon
De postcode-letters van de persoon
De woonplaats van de persoon
Het e-mail adres van de persoon
Het netnummer van de persoon
Het telefoonnummer van de persoon
De dienst waar de persoon een offerte voor wil aanvragen
(dit is een dropdown box, hoe moet ik aan de hand van deze bepalen naar welke pagina je wordt gestuurd als je op "volgende" klikt?)
Of de persoon akkoord gaat met de algemene voorwaarden

Dit wordt als je op "volgende" klikt verzonden naar de database. Op een of andere manier kijkt de database (of een php script misschien?) wat je bij de dropdown geselecteerd hebt. Vervolgens wordt je naar de juiste pagina hiervoor doorverwezen. Deze pagina is alleen toegankelijk als je via de offerte pagina er naar toe gaat. De tekst ingevuld bij pagina 1 staat nog steeds in de database. Je vult afhankelijk van de dienst die je hebt geselecteerd verschillende velden in. Deze worden ook aan de database toegevoegd. Onder aan pagina 2, de pagina waar je dan bent, staat geen "volgende", maar een "Verstuur" button. Als je daar op klikt wordt alle tekst die ingevuld is, van pagina 1 én 2 allebei naar mijn e-mail verzonden, en wordt de database leeggemaakt voor de volgende persoon die een offerte wilt aanvragen, die begint weer vanaf het begin.

Nu denk ik dat op deze manier, als twee mensen tegelijk een offerte aanvragen, ze in de zelfde database zitten, en dat ze allebei het zelfde verzenden, is dit zo, en zo ja, hoe kan ik dat oplossen?

Alvast erg bedankt!
 
Volgens mij worden de gegevens niet overschreven, maar er wordt wel een nieuwe rij gemaakt denk ik.

Als ik jou was zou ik iets als een klantID invoegen, dan weet je later welke gegevens bij wie horen.
 
Oké

Oké, en hoe zorg ik ervoor dat het als één e-mail naar mij verzonden wordt? En hoe zorg ik ervoor dat het dropdown menu bepaald naar welke pagina je gaat, en daar naar toe gaat als je op volgende klikt?
 
1. leer de mailfunctie:
PHP:
mail($webMaster, $emailSubject, $body, $headers);
de variabele $webMaster is jouw eigen emailadres.
$emailsubject is het onderwerp van het bericht
$body is wat er in het bericht moet komen, stop dus hier al je variabelen in van het formulier.
$headers zijn optioneel en staat voor cc e.d. van het bericht.

2.
ga na hoe je ze laat kiezen.

even een voorbeeldje:
HTML:
<select name="car">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

nou waarschijnlijk raad je het al, je gaat na welke value hij heeft gekozen.
dit doe je gewoon door $autotype = $_POST['car'];
heb je volvo gekozen dan krijgt de select input de waarde volvo.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan