2016-12-15 12 views
0

現在、私はクライアントサイド検証を使用してこれを行う簡単な方法があります。ウェブサイトに表示されないPHPを修正する

<form id="mail" action="form.php" method="post"> 
    <label for="name">Username</label><input type="text" id="name" name="name" /> 
     <label for="pwd">Password</label><input type="password" id="pwd" name="pwd" /> 
     <label for="email">Email</label><input type="email" id="email" name="email" /> 
    <input type="submit" value="submit"> 
</form> 

とサーバー側の

<?php 
echo "Thanks for joining, " . $_POST["name"] . "!<br />"; 
echo "A confirmation email might have been sent to: " . $_POST["email"] . " if this were a real site.";?> 

何ページ全体を提出クリックしたとき、私はjavascriptの

$('#mail').on('submit', function(e) {   // When form is submitted 
    e.preventDefault();        // Prevent it being sent 
    var details = $('#mail').serialize();   // Serialize form data 
    $.post('form.php', details, function(data) { // Use $.post() to send it 
    $('#mail').html(data);     // Where to display result 
    }); 
}); 

でこれまでにしようとしていることは、PHPのエコーメッセージに変わります。ウェブサイトに表示する方法はありますか?これはそれを処理する必要があり

+1

たぶんAJAXについて(純粋なJSをやフレームワークを使用して)読み始める... http://api.jquery.com/jquery.ajax/ < - あなたがしたい場合はjQueryを使って起動します。 – Asfo

+0

フォームが正常に送信されるように、jQueryコードが実行されていない場合に発生する現象が発生します。それは '$(document).ready()'の中にありますか? – Barmar

答えて

0

:あなたはすでにjQueryライブラリを使用しているように見えます

$('#mail').on('submit', function(e) { 
e.preventDefault(); 
    $.get(
     "submit_page.php", 
     { 
      mail: document.getElementById('mail').value, 
      other: document.getElementById('other').value //Some other value 
     }, 
     function(data) { 
      $('#mail').html(data); 
     }); }); 
0

、あなたは非同期にデータを投稿すると、あなたの現在のページを変更せずに、サーバーからJSON応答を受け取るために、そのAjaxの機能を使用することができます:

$('#mail').on('submit', function(e) 
 
{ 
 
    e.preventDefault(); 
 
    $.ajax(
 
\t { 
 
\t \t data:{"fieldName":fieldValue}, 
 
\t \t type:"POST", 
 
\t \t dataType: "json", 
 
\t \t url: "destination.php", 
 
\t \t success: successFunction 
 
\t }); 
 
} 
 

 
function successFunction(result) 
 
{ 
 
\t alert(result.message); 
 
}

あなたのPHPは次のよ​​うになります。

<?php 
 
    //Some php stuff 
 

 
    $json['message'] = "A confirmation email might have been sent..."; 
 

 
    header('Content-type: application/json; charset=utf-8'); 
 
\t echo json_encode($json, JSON_FORCE_OBJECT); 
 
?>

+0

'$ .post'は' $ .ajax'のショートカットに過ぎず、引数の束をデフォルトにしています。なぜ彼は代わりに '$ .ajax'を使うべきですか? – Barmar

関連する問題