在jquery中增加循环内的变量

时间:2016-04-07 10:08:49

标签: jquery ajax

我需要从两个下拉列表中选择两个值,例如,第一个下拉列表中的1001和第二个下拉列表中的1003。点击“添加'按钮,我需要将这些值及其中的值与$.ajax()方法一起发送到100110021003

以下是我用于此的代码。

var s_no = "" + $("#start_num option:selected").text();
var e_no = "" + $("#end_num option:selected").text();
var diff = e_no - s_no;
var regno = 0;

for (i = 0; i <= diff; i++) {
    regno = s_no;
    $.ajax({
        type: 'POST',
        dataType: "json",
        url: '<?php echo base_url('SchoolAdmin/inserthall'); ?>',
        data: { regno: regno },
        success: function (result) {
            console.log(result);
        }
    });
    s_no = regno + 1;
}

s_no中的相同值将插入到数据库中,而不是其他值。 1001重复插入数据库。我需要10021003以及1001。提前谢谢。

4 个答案:

答案 0 :(得分:2)

您需要将从val()返回的字符串转换为整数,以便您可以对它们进行减法操作。另请注意,可以整理计算数字的逻辑。试试这个:

var s_no = parseInt($("#start_num option:selected").text(), 10);
var e_no = parseInt($("#end_num option:selected").text(), 10);
var diff = e_no - s_no;

for(i = 0; i <= diff; i++) {
    var regno = s_no + i;
    $.ajax({
        type: 'POST',
        dataType:"json",
        url: '<?php echo base_url('SchoolAdmin/inserthall'); ?>',
        data: { regno: regno },
        success: function (result) {
            console.log(result);
        }
   });
}

另请注意,让一个AJAX请求一次性发送所有reg_no值会更好。

答案 1 :(得分:1)

您发送的值regno已初始化为基值s_no

regno=s_no;

但是你需要添加计数器变量

regno=s_no + i;

答案 2 :(得分:1)

另外,放

会不会更好
#two, #three, #four {
  display: none;
  }

在for循环顶部的分配中?

答案 3 :(得分:1)

var checked = $("input:checked");
checked.each(function(index) {
  var $this = $(this);
  var id_bookslot = data + index + 1;          // <== Using the index here
  var treatment_type = $this.closest("div").attr("id");
  var id_treatment = $this.attr("class");
  $.post("include/get_booking.php?insert", {
      id_bookslot:    index,
      id_treatment:   id_treatment,
      treatment_type: treatment_type
    }``
  );
});