0

dbにアクセスして数値結果を返し、その結果をテーブルセルに書き込むjqueryスクリプトがあります。このスクリプトは、ページが読み込まれたときだけでなく、ドロップダウンメニューが変更されたときにも実行されます。テーブルセルごとに1つの結果のみを制限できるようにしたい。

現在、ページが読み込まれると結果がセルに書き込まれ、ドロップダウンメニューが変更されると、新しい結果が置き換えられるのではなく、セルに追加されるだけです。

私はこれを行う方法を見つけようとしてかなり検索しましたが、何も思いつきません。誰かが私を助けることができますか?

jQueryは次のとおりです。

$(document).ready(function(){

$('.typeval').change(function(){
    var movement    =  $(this).val();
    var client_id   = $(this).parent().siblings().find('.clientval').val();
    var class_id    = <? echo $class_id; ?>;
        $count      = $(this).parents('tr').find('label.count');

$.ajax({ 
  type: "POST",
  url: "movement_count.php",
  data: {movement:movement, client_id:client_id, class_id:class_id},
  dataType: "json", 
  async: false,
  success:(function(output) {      

      $.each(output, function(index, value){
     //alert(value);
     $count.append(output[index]);
     }); // each
     })     
}) // ajax

}).change(); // .typeval

});  // document

これは、一度に1つの結果のみを表示したいテーブルセルです。

<td><label class="count">5</label></td>

必要な支援について十分な情報を提供していない場合は、お知らせください。

4

2 に答える 2

2

.text()の代わりに使用.append()

$count.text(output[index]);

その名前が示すように.append()、コンテンツをコンテナの最後に追加します。一方、.text()コンテナに表示されるテキストを設定し、既存のテキストを上書きします。

実際には.html()、はより.append()も動作しますが、実際に設定していない限り、を.text()使用することはお勧めしません。結果は数値であるとおっしゃっていたので、より良いです。.html().html().text()

于 2012-10-22T21:19:50.320 に答える
0

新しい結果を追加する前に、AJAX呼び出しを更新して内容をクリアしてみてください。

$.ajax({ 
    type: "POST",
    url: "movement_count.php",
    data: {movement:movement, client_id:client_id, class_id:class_id},
    dataType: "json", 
    async: false,
    success:(function(output) {      

        $.each(output, function(index, value){
            //alert(value);

            $count.html(''); // Clear current content

            $count.append(output[index]); // Append new content

        }); // each
     })     

})// ajax

于 2012-10-22T21:19:48.193 に答える