2012-01-19 17 views
1

jqueryの投稿と投稿に問題があります。私はフォームを提出して、それを私のPHPに投稿してチェックし、PHPの結果をフォームに戻したいと思います。しかし、私はデータの返却に問題があります。基本的に結果は無視されます。Jquery submitと投稿投稿するデータを返すことができません

これは私のHTMLフォームです:

<form id="form" method="post"> 
    <p id="status">Status:</p> 
    <p class="text"> 
     <label for="name" class="label">Name:</label> 
     <input type="text" id="name" name="name" value="" size="30" /> 
    </p> 
    <p class="text"> 
     <label for="email" class="label">Email:</label> 
     <input type="text" id="email" name="email" value="" size="30" /> 
    </p> 
    <p class="submit"> 
     <input type="submit" name="send_btn" id="send_btn" value="Send" /> 
    </p> 
</form> 

これは、提出してポストを行うには、私のjavascriptです:

$('#form').submit(function(e) { 
    e.preventDefault(); 

     var name = $('#name').val(); 
     var email = $('#email').val(); 

     $.post('notify.php', {name: name, email: email}, function(data) { 
      $('#status').html(data); 
     }); 

}); 

これは、チェックを行い、データを返すPHPです:

​​

何が間違っているのかを強調してください。ありがとうございました。

+4

PHPは何も印刷しません。エコー/プリントがありません。 –

+1

また、最後に引用符に関連する構文エラーがあります... – DaveRandom

答えて

2

あなたのPHPスクリプトでechoまたはdieにする必要がありますので、関数は結果を得ることができます。

ので、これにスクリプトを変更します。

<?php 
if (isset($_POST['name'], $_POST['email'])) 
{ 
    $name = htmlentities($_POST['name']); 
    $email = htmlentities($_POST['email']); 

    if ($name == "myname") 
    { 
     $output = 'It matches!'; 
    } 
    else 
    { 
     $output = 'No matches!'; 
    } 

    echo $output; 
} 
?> 

お知らせ私はecho $outputを呼び出しています最後の行、第3 - あなたのAJAX呼び出しから返されるエコー何でも。より複雑にしたい場合は、JSONオブジェクトを返す必要があります。

$results = array("result" => "It Matches!", "foo" => "bar"); 
echo json_encode($results); 

EDITは:また、あなたの他の終わりに'"を変更する必要があります。

0

あなたのPHPコードでは、実際にページに$出力を書いていません。

<?php 
    // your code 

    echo $output; 
?> 
1

コメントとしてPHP に答えを印刷 エコー$出力を提案します。

0

はいけない行末の

リターンを忘れてしまいました。

忘れてしまった場合は、送信時にフォームが再作成され、ajaxが失敗します。

$('#form').submit(function(e) { 
    e.preventDefault(); 

     var name = $('#name').val(); 
     var email = $('#email').val(); 

     $.post('notify.php', {name: name, email: email}, function(data) { 
      $('#status').html(data); 
     }); 
    return false;  
});