2012-04-26 11 views
2

私のウェブサイトには、投稿時に自分のデータベースを変更する更新フォームがあります。私はしかし、やりたいことは、古い値が含まれているすべての要素を持っている私が試した私のPHPでAJAXの返信データが既存の要素にフェードします

AJAX

// UPDATE 
    $(".bill-upd-submit").click(function() { 
      var elem = $(this); 
      $.post("update_bill.php", elem.parent(".bill-upd").serialize(), function(data) { 
      //INSERT INTO OLD VALUES 
      }); 
    }); 

PHP

ある 運がない次の人は誰でも前にこれをやったことがありますか、私がどこに間違っているかもしれないかについて私に助言を与えることができますか?

echo "elem.closest('li').find('.cost').html('');"; 

答えて

2

サーバーにjQueryコードを提供する必要はありません。あなたはあなたの//INSERT INTO OLD VALUESコメントを持っているコールバック関数にそれをタイプすることができます。

$.post("update_bill.php", elem.parent(".bill-upd").serialize(), function(data) { 
    //We will use the "data"-variable that was passed to this function by jQuery. 
    elem.closest('li').find('.cost').html(data); 
}); 

上記のコードでは、「データ」変数にはサーバーによって返されたものが含まれています。したがって、その解決策は、に挿入するHTMLを"update_bill.php"が返すことを確認してください。

+0

ありがとうございます@Avaq私は戻っていきたいものがいくつかありますが、それらはすべて別の要素に移動する必要があり、現時点ではすべてが.costに入ります。これを分割することは可能ですか? – Liam

+0

はい。サーバーが提供する答えを完全に制御できる場合は、[JSON](http://nl.php.net/json_encode)を返すことができます。その場合、 "data"変数には返されたJSON要素が含まれており、必要に応じてその変数を使用できます。この方法は、[clientside templating](http://api.jquery.com/category/plugins/templates/)と一緒に動作します。 – Avaq

+0

別の要素を1つの大きなHTMLファイルで受け取った場合は、jQueryを使用して、そこから 'var myMenu = $(data).find( '#menu')'などのサブ要素を選択できます。 – Avaq

関連する問題