Goedenavond,

Allereerst dank voor diegene die mij op weg wil helpen. Ik ben bezig met een website en een formulier. Dit formulier roept (correct me if i'm wrong) een JS aan waarin de post staat naar een .php file. Nu had ik al een send.php file en deze aangepast maar krijg 'm niet goed. Of mail geeft geen afzender, of het bericht is niet compleet etc.

HTML
											<div 	<!-- Appointment Form -->
	<div class="modal fade" id="appointmentForm">
		<div class="modal-dialog container">
			<div class="modal-content">
				<div class="modal-header"><a href="#" class="appointment" data-toggle="modal" data-target="#appointmentForm"><i class="icon-shape icon"></i><span>Afspraak</span></a>
					<button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="icon-close-cross"></i></button>
				</div>
				<div class="modal-body">
					<div class="container-fluid">
						<h2>Plan <span class="color">onderhoud of reparatie</span></h2>
						<p>Om een afpraak te plannen bij * of vul onderstaand formulier. Wij nemen dan contact met uw op om uw afspraak te bevestigen. </p>
						<div class="divider"></div>
						<form id="appointment-form" class="contact-form form-horizontal" name="contactform" method="post">
							<div id="successAppointment" class="successform">
								<p>Uw bericht is succesvol verzonden</p>
							</div>
							<div id="errorAppointment" class="errorform">
								<p>Something went wrong, try refreshing and submitting the form again.</p>
							</div>
							<h5>Contact information</h5>
							<div class="form-inline">
								<div>
									<input type="text" name="name" class="form-control input-custom" value="" placeholder="First name">
								</div>
								<div>
									<input type="text" name="lastname" class="form-control input-custom" value="" placeholder="Last name">
								</div>
							</div>
							<div class="form-inline">
								<div>
									<input type="text" name="phone" class="form-control input-custom" value="" placeholder="Phone number">
								</div>
								<div>
									<input type="text" name="email" class="form-control input-custom" value="" placeholder="Your E-mail">
								</div>
							</div>
							<div class="divider"></div>
							<h5>Appointment details</h5>
							<div class="form-inline">
								<div class="datetimepicker-wrap">
									<input type="text" name="date" class="form-control input-custom datetimepicker" placeholder="">
								</div>
								<div class="timepicker-wrap">
									<input type="text" name="time" class="form-control input-custom timepicker" placeholder="">
								</div>
							</div>
							<div class="form-inline">
								<div>
									<input name="autoinfo" type="text" class="form-control input-custom" value="" placeholder="Vehicle Year, Make and Model">
								</div>
								<div class="form-inline">
									<div class="select-wrapper">
										<select name="select1" class="input-custom">
											<option value="2000">2000</option>
											<option value="2001">2001</option>
											<option value="2002">2002</option>
											<option value="2003">2003</option>
											<option value="2004">2004</option>
											<option value="2005">2005</option>
											<option value="2006">2006</option>
											<option value="2007">2007</option>
											<option value="2008">2008</option>
											<option value="2009">2009</option>
											<option value="2010">2010</option>
										</select>
									</div>
									<div>
										<input name="kilometers" type="text" class="form-control input-custom" value="" placeholder="Current Kilometers">
									</div>
								</div>
							</div>
							<div class="form-inline">
								<textarea name="message" class="form-control textarea-custom" placeholder="Service Required"></textarea>
							</div>
							<div class="divider"></div>
							<div class="row">
								<div class="col-sm-4 col-md-3 bootstrap-datetimepicker-widget">
									<button type="submit" id="submit" class="btn btn-lg"><span>SUBMIT</span></button>
								</div>
								<div class="divider visible-xs"></div>
								<div class="col-sm-8 col-md-9">
									<p><i>Please note that the date and time you requested may not be available. We will contact you to confirm your actual appointment details.</i></p>
								</div>
							</div>
						</form>
					</div>
				</div>
			</div>
		</div>
	</div>
									</div>


JS
		// appointment form
		if (forms.appointmentForm.length) {
			var $appointmentForm = forms.appointmentForm;
			$appointmentForm.validate({
				rules: {
					name: {
						required: true,
						minlength: 2
					},
					phone: {
						required: true,
						minlength: 10
					},
					message: {
						required: true,
						minlength: 20
					},
					email: {
						required: true,
						email: true
					}

				},
				messages: {
					name: {
						required: "Please enter your name",
						minlength: "Your name must consist of at least 2 characters"
					},
					phone: {
						required: "Please enter your number",
						minlength: "Your name must have 10 characters"
					},
					message: {
						required: "Please enter message",
						minlength: "Your message must consist of at least 20 characters"
					},
					email: {
						required: "Please enter your email"
					}
				},
				submitHandler: function (form) {
					$(form).ajaxSubmit({
						type: "POST",
						data: $(form).serialize(),
						url: "process-appointment1.php",
						success: function () {
							$('#successAppointment').fadeIn();
							$('#appointment-form').each(function () {
								this.reset();
							});
						},
						error: function () {
							$('#appointment-form').fadeTo("slow", 0, function () {
								$('#errorAppointment').fadeIn();
							});
						}
					});
				}
			});
		}



PHP
<?php
	if($_POST){
		$to = '[email protected]';/*Put Your Email Adress Here*/
		$subject = $_POST['subject'];
		$from_name = $_POST['name'];
		$from_email = $_POST['email'];
		$phone = $_POST['phone'];
		$date = $_POST['date'];
		$autoinfo = $_POST['autoinfo'];
		$select1 = $_POST['select1'];
		$kilometers = $_POST['kilometers'];
		$message = $_POST['message'];
		$header = "From: $from_name <$from_email>";
		mail($to, $subject, $message, $header);
					
				
			
	}
?>
Plaats eens een print_r($_POST) in je mailscript. En kijk eens in de browser bij het developers-tabblad wat de aanvraag teruggeeft.
Dank je Ariën, maar waar plaats ik een print_r($_POST), ik ben een leek he :-( en als ik in mijn browser kijken, moet ik dan de url van het mailscript oproepen? Dat geeft in ieder geval aan dan de pagina niet werkt. [edit]schrijfrechten onjuist, aangepast maar nog geen juiste werking[/edit]

[size=xsmall]Toevoeging op 28/02/2021 09:46:14:[/size]

Deze code met de juiste schrijfrechten en de onderstaande code wordt het formulier verstuurd. Alleen de inhoud van het bericht is alleen 'Message'. Alle andere ingevulde velden worden niet mee verzonden.

<?php
    if($_POST){
        $to = '[email protected]';/*Put Your Email Adress Here*/
        $subject = $_POST['subject'];
        $from_name = $_POST['name'];
        $from_email = $_POST['email'];
        $phone = $_POST['phone'];
        $date = $_POST['date'];
        $autoinfo = $_POST['autoinfo'];
        $select1 = $_POST['select1'];
        $kilometers = $_POST['kilometers'];
        $message = $_POST['message'];
        $header = "From: $from_name <$from_email>";
        mail($to, $subject, $message, $header);
                    
                
            
    }
?>
Zet je print_r($_POST) eens na lijn 2. Dan weet je welke data je meestuurt in je POST-request naar het script.

Bekijk daarna in het network-tabblad van je browser wat je script teruggeeft. Dit omdat je het mail-script a-synchroon via AJAX uitvoert.

Zie ook:
https://developers.google.com/web/tools/chrome-devtools/network

Elke browser heeft overigens een soortgelijke functie.

Zet er een punt-komma achter?

Dat hoort bij elke PHP-regel. ;-)
Zo? en dan bij iedere regel daaronder? Sorry :-(


<?php
    if($_POST){
        print_r($_POST); $to = '[email protected]';/*Put Your Email Adress Here*/
        $subject = $_POST['subject'];
        $from_name = $_POST['name'];
        $from_email = $_POST['email'];
        $phone = $_POST['phone'];
        $date = $_POST['date'];
        $autoinfo = $_POST['autoinfo'];
        $select1 = $_POST['select1'];
        $kilometers = $_POST['kilometers'];
        $message = $_POST['message'];
        $header = "From: $from_name <$from_email>";
        mail($to, $subject, $message, $header);
                    
                
            
    }
?>
Gewoon 1 maal, en klaar :-) (een ENTER is niet overbodig)

En dan even in je Network-tabblad je script process-appointment1.php zoeken, dubbelklikken en kijken naar de request-data.

De inhoud van het formulier wordt namelijk via een POST-request gestuurd, en het is daarom handig om te weten welke data dat allemaal is.
off topic

phone: {
required: "Please enter your number",
minlength: "Your name must have 10 characters"
},


phone ==> your name??


rules: {
name: {
required: true,
minlength: 2
},

familie A (bestaat echt :)) slechts 1 letter.
Jan
Jan R op 28/02/2021 10:52:49

off topic

phone: {
required: "Please enter your number",
minlength: "Your name must have 10 characters"
},


phone ==> your name??


rules: {
name: {
required: true,
minlength: 2
},

familie A (bestaat echt :)) slechts 1 letter.
Jan


First things first ;-)

[size=xsmall]Toevoeging op 28/02/2021 11:08:51:[/size]

- Ariën - op 28/02/2021 10:43:03

Gewoon 1 maal, en klaar :-) (een ENTER is niet overbodig)

En dan even in je Network-tabblad je script process-appointment1.php zoeken, dubbelklikken en kijken naar de request-data.

De inhoud van het formulier wordt namelijk via een POST-request gestuurd, en het is daarom handig om te weten welke data dat allemaal is.


Het formulier wordt verstuurd alleen de $message, geen andere ingevulde informatie.

Dat andere heb ik gevonden maar wat ik moet zien......

:authority: www.andijkautotechniek.nl
:method: GET
:path: /contact/form/process-appointment1.php
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7,fr;q=0.6
cache-control: max-age=0
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: none
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36

En dan gaat het om de POST-data die er wordt meegestuurd. Moet je even zoeken.

Je moet dit uiteraard wel via de normale weg doen die een gebruiker bewandelt. Want nu roep je dit volgens mij direct op je script aan, omdat ik GET als methode zie.

Reageren