2016-04-29 26 views
0

私はフォームを持っています。私がそれを提出すると、別のページに移動します。 これを修正するために、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 = "[email protected]"; 
$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. 
}); 

私は任意の助けに感謝します!ありがとう。

+0

スクリプトで 'header( 'Location:url') ; 'ページに戻る。または、同じページにスクリプトを含めて、同じページに投稿するにはajaxを使用してください – Matt

+0

event.preventDefaultは必要な処理を行うべきですが、jsではイベントに合格したように見えません。$( '#idForm ')。submit(function(event){..... –

+0

あなたのjQueryに'# 'がありません。 – ImClarky

答えて

2

イベントは、あなたがこのように変更する必要があり、あなたのjsの中

$("#idForm").submit(function(event) { 
0

関数の引数に欠落しています(同じページにポストして、空のアクションをフォームを送信しないため

$("#idForm").submit(function(e) { 
    e.preventDefault(); 

=

$("message").text("Success Message"); 
$("#message").text("Success Message"); //CORRECT with # 
:同じページ)

そして、あなたのアヤックスでは、あなたは間違いを持っ​​ています

PHPのページが何であるかを知るために関数(html)の関数(データ)を変更することができます:;)

関連する問題