更改选择选项值时jQuery ajax发布

时间:2015-09-03 07:26:26

标签: javascript jquery ajax

当用户从选择选项列表中选择参数来更改图像的值时,我会使用jQuery捕获,因此可以设置为0,1,2等。

这是我的表,包含从DB加载的所有数据:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

这是我的jquery代码,名为change:

  <?php if(count($local) >0 ){ 
      foreach($local as $row => $val ){ ?>

<tr>
    <td> <img src="<?php echo base_url();?>uploads/<?php echo $val['images']; ?>" width="50" height="50" /> </td>

    <td> <select id="ddlViewBy" class="ddlView" onchange="categoryIMG('<?php echo $val['images']; ?>');" name="main[<?php echo $val['id']; ?>]" >
        <option value="0" <?php if($val['main_image'] == 0){ ?> selected="selected" <?php } ?>>No</option>
        <option value="1" <?php if($val['main_image'] == 1){ ?> selected="selected" <?php } ?> >Facebook </option>
        <option value="2" <?php if($val['main_image'] == 2){ ?> selected="selected" <?php } ?> >Filosofia </option>
        <option value="3" <?php if($val['main_image'] == 3){ ?> selected="selected" <?php } ?> >Galleria </option>
    </select> </td>
</tr>

问题是:有时候需要花费太多时间来进行ajax调用,有时候当用户只使用select选项进行一次交互时会进行3或4次调用。

我还尝试了function categoryIMG(id){ var local = <?php echo $this->id; ?>; var val = $('select').bind('change',function() { var newval = $(this).val(); $.ajax({ type: "POST", url: "<?php echo base_url() ?>backend/chg_img/" +id+"/"+newval+"/"+local, data:{}, success: function(result){ alert('Successfully called');}, error:function(exception){alert('Exeption:'+exception);} }); }); } .on('change', function()),但我遇到了同样的问题。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

问题是,每次用户从选择框中选择选项时,您都要添加$('select').bind('change',function() {。而不是仅修改您的HTML以从选择框中移除onchange="categoryIMG(并将$('select').bind('change',function() {移至$(document).ready(function(){块。

答案 1 :(得分:0)

我认为你错过了var id。试试这段代码

$('select').on('change',function() {
    var loc =  <?php echo $this->id; ?>;
    var newval = $(this).val();
    $.ajax({
        type: "POST",
        url: "<?php echo base_url() ?>backend/chg_img/" +id+"/"+newval+"/"+local,
        data:{},
        success: function(result){ alert('Successfully called');},
        error:function(exception){alert('Exeption:'+exception);}
    });
});