2016-08-04 18 views
-2

自分のコードにすべてのパラメータを定義しましたが、エラーを解決できませんでした。私は定義したが、鋼鉄はこのエラーを取得しています。フォームレストから最初のフィールドを削除するとうまくいきます。以下 は私が推測するメールを送信することができjQueryの罰金で助けると解決なくしてください

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" integrity="sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <script> 
 
    
 
$(document).ready(function(){ 
 
    
 
$("#submit").click(function(){ 
 
    
 
    
 
    var postname = $("#fname").val(); 
 
     
 
    var postemail = $("#email").val(); 
 
     
 
    var postphone = $("#phone").val(); 
 
     
 
     
 
     
 
     $.post("process.php", {fname:postname, email:postemail, phone:postphone }, function(postresult) { 
 
     
 
     $("#postdiv").html(postresult); 
 
    
 
    }); 
 

 

 
}); 
 
    
 
    
 
}); 
 

 
    
 
</script> 
 
\t <style type="text/css"> 
 
\t \t .box { 
 
\t \t \t width: 900px; 
 
\t \t \t background: gray; 
 
\t \t \t color: white; 
 
\t \t \t margin: 0 auto; 
 
\t \t \t padding: 10px; 
 
\t \t \t text-align: center; 
 
\t \t } 
 
\t \t #postdiv{ 
 
    margin-left: 50px; 
 
    width:30%; 
 
    background-color:#eee; 
 
} 
 
\t </style> 
 

 
    </head> 
 

 
<body> 
 
<div class="container"> 
 
<h1>Bootstrap Form jQuery $.post without refreshing page </h1> 
 
    <form class="form-horizontal" role="form"> 
 

 
     <div class="form-group"> 
 
     <label for="" class="col-sm-2 control-label">Name:</label> 
 
     <div class="col-sm-5"> 
 
      <input type="text" name="fname" class="form-control" id="fname" placeholder="Enter Name"> 
 
     </div> 
 
     </div> 
 
     
 
     <div class="form-group"> 
 
     <label for="" class="col-sm-2 control-label">Email:</label> 
 
     <div class="col-sm-5"> 
 
      <input type="email" name="email" class="form-control" id="email" placeholder="Enter Email"> 
 
     </div> 
 
     </div> 
 

 
     <div class="form-group"> 
 
     <label for="" class="col-sm-2 control-label">Phone:</label> 
 
     <div class="col-sm-5"> 
 
      <input type="text" name="phone" class="form-control" id="phone" placeholder="Enter Phone"> 
 
     </div> 
 
     </div>   
 

 
    </form> 
 
    </div> 
 
<div class="col-sm-offset-2 col-sm-5"> 
 
<button id="submit" name="submit" class="btn btn-lg btn-block btn-warning">Submit</button> 
 
</div><br /><br /><br /> 
 
<div id="postdiv"><h3>You entered following data!</h3></div> 
 
</body> 
 
</html>

と以下の私のprocess.php

  <?php 

if (isset($_POST['submit'])) { 


$fullname = $_POST['fname']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 


$to = "[email protected]"; 
$subject = "Contact Query For Order Form"; 
$message = "Your Name: $fname \n". 
      "Your Email: $email \n" . 
      "Your Phone No: $phone \n" ; 


mail($to, $subject, $message, "From: " . $email); 


echo "Form Submited Successfully..!"; 

} 
else{ 
    echo "Message Failed..!"; 
} 


?> 

ではindex.php私のブートストラップですif(isset($ _ POST ['submit'] {.........}

+0

AJAXリクエストを渡すオブジェクトでは、typo: 'fname'ではなく' name'です。また、手動でデータを構築する代わりに、 '$( '。form-horizo​​ntal')。serialize()'を使用することもできます。 –

+0

電子メールの「差出人」フィールドに誰かの電子メールを置くことはできません。ローカルサーバーの電子メールアドレスからのものでなければなりません。 – 4castle

+0

ありがとうRory McCrossan& - 余分なヒントについては、私が従うことを確かめてください。 – David

答えて

0

を。あなたのページはすべての値を投稿する送信ボタンとして送信されます。あなたはちょうど与えられた打撃に従って偽の戻り値を加える必要があります。あなたのコードはうまくいくはずです。

$(document).ready(function(){ 

$("#submit").click(function(){ 


    var postname = $("#fname").val(); 

    var postemail = $("#email").val(); 

    var postphone = $("#phone").val(); 



     $.post("process.php", {fname:postname, email:postemail, phone:postphone }, function(postresult) { 

     $("#postdiv").html(postresult); 

    }); 
return false; 

}); 


}); 
+0

'return false'は必要ではありません。なぜならフォームに送信する' action'属性がないからです。 – 4castle

+0

{fname:postname、email:postemail、phone:postphone、submit:true}あなたの権利を4キャスルしてください。 – David

+0

ありがとうManish Shuklaあなたのご意見もあまりにも助けてくれました、$( "#postdiv")。html(postresult);今すぐ追加した後に表示されていない私のアプリはあなたの時間と行動のためにあなたに感謝します。 – David

1

012に渡すオブジェクトには、リクエストで送信されるすべてのキーと値のペアが含まれています。

あなたはfnameにタイプミスがありました代わりに

{fname:postname, email:postemail, phone:postphone } 

{name:postname, email:postemail, phone:postphone } 

を置きます。


リクエストでsubmit含まれていることを確認し、if (isset($_POST['submit']))で問題を解決するには、次の私の理解あたりとして

{fname:postname, email:postemail, phone:postphone, submit:true} 
+0

明確な説明のために4castleありがとう。 – David

+0

ありがとうRory McCrossa私はそれを解決しましたstackoverflowは偉大です – David

+0

私は何かを名前を付けることができるいくつかのビデオtutsで見てきたとjquery変数名と一致する必要があります。彼らは間違っている。 – David

関連する問題