AJAX调用重新加载只能工作一次

时间:2013-09-05 13:20:42

标签: javascript ajax reload

我是AJAX的新手并且已经问了几个问题儿子这个问题,但我有另一个,我使用AJAX调用自动将值从下拉列表保存到数据库,这很好用,但每次我更改一个值(它们是多个下拉列表,每个值可以容纳几个值)我希望div更新以反映值的变化。我的AJAX如下:

<script>
  $(document).ready(function(){
  $('select').on('change',function () {
          var statusVal = $(this).val();
          var job_id = $(this).prop('id');
          $.ajax({
                   type: "POST",
                   url: "saveStatus.php",
                   data: { statusType : statusVal, jobID: job_id },
            success: function(data) {   
                $('#div1').load('jobs.php #div1', function() {}); 

                   }
        })
    });
  });
</script>

因此,当我在一个下拉框中更改一个值(在div1中)时,它会刷新该值,但如果我要更改相同或不同下拉列表中的另一个值,则不再刷新div或将值保存到my DB,没有我的AJAX中的重载位我可以更改多个字段中的值并保存,但是重新加载部分它只发生一次

----- ----- EDIT

好的进一步提问,我用过

  $('#div1').on( 'change', 'select', function( ) {                                              
        var statusVal = $(this).val();
          var job_id = $(this).prop('id');
          $.ajax({
                   type: "POST",
                   url: "saveStatus.php",
                   data: { statusType : statusVal, jobID: job_id },

                   success: function(data) {   
                        $('#div1').load('jobs.php #div1', function() {});
                   }
        })
    });
  });

即使对于多个选择更改也很有用。然而,如果我在几个div中选择了一些,EG div1,div2和div3。如何调整此代码以便能够刷新任何div中的所有div,或者只是为每个div调整3次代码。

----- ----- EDIT 谢谢你们,我能够用

做到这一点
$('#div1, #div2').on( 'change', 'select', function( ) { //stuff

伊恩

1 个答案:

答案 0 :(得分:2)

你的监听器被绑定到select元素,我正在打赌它被吹走并与load()相关联。查看event delegation。 jQuery让它变得简单。尝试在'#div1'上绑定侦听器

$('#div1').on( 'change', 'select', function( e ) { //stuff 

然后它也应该适用于刷新的内容。