2011-01-28 18 views
2

やあみんな、私はjqueryのコードのこの部分がありますjQueryのAjaxの問題

<script type="text/javascript" > 
    $(function() { 
     $(".submitButton").click(function() { 
      var post = $("#post").val(); 
      var dataString = 'post='+ post; 

      if(post=='') 
      { 
       $('.error').fadeIn(200).show(); 
      } 
      else 
      { 
       $.ajax({ 
        type: "POST", 
        url: "post.php", 
        data: dataString, 
        success: function(){ 
         $('.error').fadeOut(200).hide(); 
        } 

       }); 
      } 
      return false; 
     }); 
     $('.error').hide(); 
    }); 
</script> 

を、私はそれがさわやかせずに値を投稿したいです。私はpost.phpを作成しました:

<?php 
    ini_set('display_errors', 'On'); 
    error_reporting(E_ALL); 

    session_start(); 

    $post=mysql_real_escape_string($_POST['post']); 
    $mysql=mysql_connect('localhost','***','***'); 
    mysql_select_db('jmtdy'); 
    $result=mysql_query("select * from users where username='".$_SESSION['username']."'") or die(mysql_error()); 
    $dbarray=mysql_fetch_assoc($result); 
    mysql_query("insert into posts (userid, post, username) values ('".$dbarray['id']."','".$post."','".$dbarray['username']."'") or die(mysql_error()); 
?> 

しかし値はまだデータベースに追加されていません。あなたはその問題が何であるか知っていますか?

+0

フォームはあなたのAJAX – Alex

答えて

1

サーバーでエラーが発生していないことを確認しましたか?何かを出力してPHPスクリプトが正しく動作することを確認する必要があります。

Firebug(またはChrome Dev。Tools)を使用してXHRリクエストを監視し、そこに問題があるかどうかを確認することをおすすめします。

+0

をトリガしないであろう、任意の入力時にEnterキーを押して提出することができるので、私は、フォームの提出ハンドラではなく、クリックイベントを使用することをお勧めし、私は$ポスト後にこの権利を追加しました= mysql_real .... echo $ post;ページに何も表示されませんでした。 –

+0

@Samir:FirebugまたはCDTを使用して500台のサーバーエラーをチェックしてください。 –

+0

ファイヤーバグを使ってどうすればいいですか? –

0

は、使用してみてください:

var data = new Object(); 
data["post"] = $("#post).val(); 
// .... 
// In ajax section 
data: data, 
dataType: "json" 

があなたのphpファイルでprint_r($_POST)を行います。そして、あなたのajaxが送信するものを処理するために誰かのデバッガを使用してください。

1

よろしくお願いします。

<!doctype html> 
<html> 
    <head> 
     <title>Test</title> 
      <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> 
      <script type="text/javascript"> 
       $(document).ready(function() { 
        $('#your_form').submit(function(e){ 
         e.preventDefault(); // prevents default form submit action 
         $('.error').hide(); 
         $('.loading').fadeIn(); // show the loading bar or circle, whatever 
         if (check_form($(this))) { 
          $.post('post.php',$(this).serialize(),function(data){ 
           $('.loading').hide(); 
           if (data.error === '') { 
            console.log(data.response); 
           } else { 
            console.log(data.error); 
           } 
          },"json"); 
         } else { 
          return false; 
         } 
        }); 
       }); 
       function check_form(elem) { 
        var check_array = elem.find('input:not([type=submit])'); 
        $.each(check_array,function(i){ 
         if (check_array.eq(i).val() === '') { 
          return show_error('Field "' + check_array.eq(i).prev().text() + '" must be filled.'); 
         } 
        }); 
        return true; 
       } 
       function show_error(text) { 
        $('.error').html(text).fadeIn(); 
       } 
     </script> 
     </head> 
     <body> 
     <div class="error" style="display:none;"></div> 
     <div class="loading" style="display:none;"><img src="http://action.afscme.org/c/51/images/ajax-loader.gif" /></div> 
     <form id="your_form"> 
      <label for="your_name">Your name</label> 
      <input type="text" name="your_name" /> 
      <label for="your_name">Your surname</label> 
      <input type="text" name="your_surname" /> 
      <input type="submit" value="Submit" /> 
     </form> 
    </body> 
</html> 


<?php 
    ini_set('display_errors', 'On'); 
    error_reporting(E_ALL); 
    session_start(); 

    $post = mysql_real_escape_string($_POST['your_name'].' '.$_POST['your_surname']); 
    $mysql = mysql_connect('localhost','***','***'); 
    mysql_select_db('jmtdy'); 
    $result = mysql_query("select * from users where username='".$_SESSION['username']."'") or die(mysql_error()); 
    $dbarray = mysql_fetch_assoc($result); 
    $query = "insert into posts (userid, post, username) values ('".$dbarray['id']."','".$post."','".$dbarray['username']."'"; 
    if (mysql_query($query)){ 
     $data['error'] = ''; 
     $data['response'] = 'Everything is ok'; 
    } else { 
     $data['error'] = mysql_error($mysql); 
    } 

    echo json_encode($data); 
?>