Как я могу заставить мой php-код обрабатывать 2 формы, которые находятся на одной HTML-странице. Я не уверен, что понимаю, как заставить его работать. Я искал способ, но, похоже, я продолжаю находить больше ошибок, чем решений.
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_POST as $key => $value) {
$value = trim($value);
if (empty($value)) {
exit("Empty fields are not allowed. Please go back and fill in the form properly.");
} elseif (preg_match($exploits, $value)) {
exit("Exploits/malicious scripting attributes aren't allowed.");
} elseif (preg_match($profanity, $value) || preg_match($spamwords, $value)) {
exit("That kind of language is not allowed through our form.");
}
$_POST[$key] = stripslashes(strip_tags($value));
}$recipient = "Contact Form <[email protected]>";
$subject = "New Message from Sample name";
$message = "Received an e-mail through your contact form: \n";
$message .= "Name: {$_POST['name']} \n";
$message .= "Address: {$_POST['address']}\r";
$message .= "City: {$_POST['city']} \r";
$message .= "State: {$_POST['state']} \r";
$message .= "Zip: {$_POST['zip']} \n";
$message .= "E-mail: {$_POST['email']} \n";
$message .= "Phone: {$_POST['phone']} \n";
$message .= "Message: {$_POST['message']} \n";
$from = 'Contact Form <[email protected]>';
// send email
$success = mail($recipient,$subject,$message,"From: " . $from);
if ($success) {
echo "success";
} else {
echo "Sorry, there was an error and your mail was not sent. Please contact me at <a href='#'>Email</a> or call me at <a href=''>Phone number</a>.";
}
}
?>
Если вы используете Javascript / jQuery, одно из решений — сначала захватить значения с помощью jQuery, а затем отправить их в ваш PHP-скрипт через AJAX. Например, предполагая, что вы даете идентификатор каждому из ваших значений в ваших формах (например, id = «получатель»), и вы даете всем своим кнопкам отправки класс «submit», вы можете прослушать submit и отправить значения через POST к yourPHPscript.php вот так:
$(".submit").on("click", function(e){
e.preventDefault(); //prevents the normal handling of 'submit' event
$.ajax({
method: "POST",
url: "yourPHPscript.php",
data: {
recipient: $("#recipient").val(),
subject: $("#subject").val(),
name: $("#name").val(),
address: $("#address").val(),
(etc.)
}
success: function(data){
(do something with data)
}
});
});
Других решений пока нет …