2011-09-13 25 views
0

私は、event.preventDefault()を持つjquery/ajaxフォームを持っています。問題は、入力キーを押すと入力フィールドが空にならないことです。通常、入力フィールドでEnterキーを押すと、フォーム内の「アクション」が実行され、入力フィールドが空になります。しかし、今私が何かを入力すると、私は入力を押すと、私のフォームは空にリセットされません。私は、event.preventDefault()は、フォーム内の通常の "アクション"をしないことを知っているが、私はページをリフレッシュしないようにしようとしています。ajaxとevent.preventDefault()の問題を使用してフォームを送信

-------------------- jquery --------------------(下)

$('[placeholder]').parents('form').submit(function(event) { 
    $(this).find('[placeholder]').each(function() { 
    var input = $(this); 
    if (input.val() == input.attr('placeholder')) { 
     input.val(''); 
    } 

    }); 
    var input = $('input.sel').val(); 
    dataList = 'list=' + input; 
    $.ajax({ 
     type: "POST", 
     url: "ajax_table_edit.php", 
     data: dataList, 
     cache: false, 
     success: function(html) 
      { 
       $('.selector').html(data); 
      } 
    }); 
    event.preventDefault(); 

}); 

--------------- ajax_table_edit.php -----------(以下)を同時に

if(isset($_POST['list'])){ 
$list = $_POST['list']; 
$id = $_POST['id']; 
$id = ereg_replace("[^0-9]", "", $id); 

$sql = mysql_query("INSERT INTO table (column) VALUES ('".$list."')"); 

echo "success"; 

} 

。私は成功をエコーし​​ようとしていますが、それもうまくいきません。誰かが私にこの問題の解決策を模索するのを助けることができますか?

ありがとうございました!

+0

サイドノート:その正規表現の必要はありません。あなたは単純に '$ id =(int)$ _POST ['id'];'を使うことができます。 –

+0

は面白いです。ありがとう – hellomello

+0

ファイアーバグをチェックして、ajaxコールが行われたことを確認しますか?あなたは応答を得ますか?何か間違いはありますか? – Rafay

答えて

2

あなたが成功する上で右変数をつかんいないので..あなたはとにかく予約することができるHTMLとして定義し、jQuery: $("#field").val='';

、そのあなたのメッセージを出力しないでフィールドを空白に自分自身を持っています。 ..代わりにデータを呼び出してみてください。なぜなら、それはあなたが関数内で使用しているものだからです。

... 
success: function(data) 
      { 
       $('.selector').html(data); 
      } 
... 

さらに、なぜあなたはその$idコードをPHP側に持っていますか?それも使用されていないように見えます。そして、そのajaxがあなたがSQLインジェクションから安全であるということを意味するわけではないので、その$_POST['list']変数をサニタイズする必要があります。

+0

ありがとう、ええ、私はそれを取ることを忘れていた。私はそれを衛生的にする必要があることを知っている。私は後でそのすべてをやることを考えていた。しかし、それを衛生的にするために何を使うべきかについてのヒントはありますか?もう一度ありがとう – hellomello

+0

@andrewliuほとんどのmysql_real_escape_stringを使用していますが、初心者のためにSQLインジェクションを防止するための記事がたくさんあります。他のコメントに記載されているように数値にする必要があります。確かにデータはあなたの期待通りです。 – profitphp

+0

かかりそうですか!ありがとうございました – hellomello

関連する問題