sanderisbestok
Gebruiker
- Lid geworden
- 3 jan 2009
- Berichten
- 240
Hallo,
Voor mijn eigen website wou ik graag een contactformulier, aangezien ik vrij weinig van PHP wist was het een opgave, gelukkig bestaat hier internet voor. (Ik kan zelf geen paginas PHP schrijven, maar als ik het lees begrijp ik het meeste wel zodat ik het kan aanpassen.) Ik gebruik hiervoor niet de php mail() functie maar die van phpmailer (Meerdere domeinen en was makkelijker dan PHP.ini aanpassen). Het formulier ziet er als volgt uit.
En (een deel van) de PHP zo.
Nu wil ik het liefst dat hij in plaats van naar de $succespage gaat, dat hij op dezelfde pagina blijft en er bijvoorbeeld boven het formulier 'bericht is verzonder' of 'er is iets fout gegaan' komt te staan. En nu kan ik ook daar opzich wel aardig wat informatie over vinden, maar nergens kan ik het echt in combinatie met PHPMailer vinden, en heb ik het gevoel dat ik ongeveer de hele PHP niet meer nodig heb en hij het verzend via jquery/AJAX, maar de SMTP etc staat allemaal in email.php ingesteld.
Oftewel ik snap het laatste stuk afhandeling niet helemaal, kan ik met dit formulier en deze PHP code er voor zorgen dat de pagina niet refreshed na het versturen, waarschijnlijk dus met behulp van jquery en AJAX ofzo? (Uiteraard sta ik voor alles open =D)
Sander Hansen
Voor mijn eigen website wou ik graag een contactformulier, aangezien ik vrij weinig van PHP wist was het een opgave, gelukkig bestaat hier internet voor. (Ik kan zelf geen paginas PHP schrijven, maar als ik het lees begrijp ik het meeste wel zodat ik het kan aanpassen.) Ik gebruik hiervoor niet de php mail() functie maar die van phpmailer (Meerdere domeinen en was makkelijker dan PHP.ini aanpassen). Het formulier ziet er als volgt uit.
HTML:
<form method="POST" action="email.php">
<input name="naam" id="naam" type="text" placeholder="Naam" required /><br />
<input name="email" id="email" type="email" placeholder="Email" required />
<p>Ik wil graag:</p>
<select name="dropdown" id="dropdown" required>
<option class="default" disabled="disabled" value="" default>Selecteer een van de onderstaande opties</option>
<option value="een website verzoek">Een website laten maken</option>
<option value="een flyer of visitekaartjes ontwerp verzoek">Flyers of visitekaartjes laten ontwerpen</option>
<option value="een logo ontwerp verzoek">Een logo laten ontwerpen</option>
<option value="een overige ontwerp verzoek">Iets anders laten ontwerpen</option>
<option value="een vraag">Wat vragen of meer informatie</option>
<option value="iets anders">Iets anders</option>
</select><br />
<textarea name="bericht" id="bericht" placeholder="Schrijf hier uw bericht..." required></textarea><br />
<input type="submit" value="Verzenden" />
</form>
En (een deel van) de PHP zo.
PHP:
$mail->WordWrap = 50;
// Email in HTML
$mail->IsHTML(true);
// Onderwerp
$mail->Subject = "Er is ". $dropdown. " van ". $naam. " ontvangen.";
// HTML selecteren, vervolgens opmaak
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$body = "<html><body><br/>\r\n"
. "Er is ". $dropdown. " van ". $naam. " ontvangen.". "<br/>\r\n"
. "<br/>\r\n"
. "Naam: ". $naam. "<br/>\r\n"
. "Email: ". $email. ".<br/>\r\n"
. "<br/>\r\n"
. "============================================= <br/>\r\n"
. "Het bericht is: <br/>\r\n"
. "<br/>\r\n"
. $bericht
. "<br/>\r\n"
. "<br/>============================================= <br/>\r\n";
// Email in HTML
$mail->MsgHTML($body);
if(!$mail->Send()) { /* PAGINA BIJ EEN ERROR */ }
else
{
//Pagina waarnaar toe verzonden wordt als de mail is verstuurd
header("Location: ".$succespage);
}
?>
Nu wil ik het liefst dat hij in plaats van naar de $succespage gaat, dat hij op dezelfde pagina blijft en er bijvoorbeeld boven het formulier 'bericht is verzonder' of 'er is iets fout gegaan' komt te staan. En nu kan ik ook daar opzich wel aardig wat informatie over vinden, maar nergens kan ik het echt in combinatie met PHPMailer vinden, en heb ik het gevoel dat ik ongeveer de hele PHP niet meer nodig heb en hij het verzend via jquery/AJAX, maar de SMTP etc staat allemaal in email.php ingesteld.
Oftewel ik snap het laatste stuk afhandeling niet helemaal, kan ik met dit formulier en deze PHP code er voor zorgen dat de pagina niet refreshed na het versturen, waarschijnlijk dus met behulp van jquery en AJAX ofzo? (Uiteraard sta ik voor alles open =D)
Sander Hansen