[英]submit form, stay on same page and message confirmation
我有一個表單,提交后會轉到另一頁。 為了解決這個問題,我在html中將action字段留空。 但是現在,PHP不發送郵件。
我想留在同一頁面上,發送郵件並獲得消息確認。 我對此沒有太多了解,我無法自己解決。 這是代碼:
<form id="idForm"method="post" action="">
<div class="row 50%">
<div class="6u 12u$(mobile)"><input id="nome" required="required" type="text" class="text" name="name" placeholder="Nome" /></div>
<div class="6u$ 12u$(mobile)"><input id="email" required="required" type="email" class="text" name="email" placeholder="Correo electrónico" /></div>
<div class="12u$">
<textarea id="mensaxe" required="required" name="mensaxe" placeholder="Mensaxe"></textarea>
</div>
<div class="12u$">
<ul class="actions">
<li><input type="submit" value="Enviar mensaxe" />
<span id="message"></span>
</li>
</ul>
</div>
</div>
</form>
和這里的PHP
<?php
if(isset($_POST['email'])) {
// Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
$email_to = "info@mymail.es";
$email_subject = "Contacto desde el sitio web";
// Aquí se deberían validar los datos ingresados por el usuario
if(!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['mensaxe'])) {
echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />";
echo "Por favor, vuelva atrás y verifique la información ingresada<br />";
die();
}
$email_message = "Detalles del formulario de contacto:\n\n";
$email_message .= "Nombre: " . $_POST['name'] . "\n";
$email_message .= "E-mail: " . $_POST['email'] . "\n";
$email_message .= "Comentarios: " . $_POST['mensaxe'] . "\n\n";
// Ahora se envía el e-mail usando la función mail() de PHP
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
}
?>
和js
$("#idForm").submit(function() {
event.preventDefault();
var url = "../php/formulario.php"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#idForm").serialize(), // serializes the form's elements.
success: function(data)
{
$("message").text("Success Message");
}
});
return false; // avoid to execute the actual submit of the form.
});
我感謝任何幫助! 謝謝。
函數參數中缺少事件
$("#idForm").submit(function(event) {
在您的js中,您必須像這樣進行更改:
$("#idForm").submit(function(e) {
e.preventDefault();
用於不在同一頁面中通過郵寄方式發送(動作為空=同一頁面)
在ajax中,您有一個錯誤:
$("message").text("Success Message");
$("#message").text("Success Message"); //CORRECT with #
您可以將function(data)更改為function(html)並發出警報(html)以查看php頁面說的是什么..;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.