使用动态表

时间:2018-03-05 15:02:55

标签: jquery html

我有一个动态表,我在点击上添加新行没有问题。我有一个名为service的列,其中包含一个下拉列表和一个名为price的列。每次我做出选择时,价格会根据服务下拉列表中的相应值而变化。

我的问题是:例如,如果我选择服务(牙医),他的价格会显示在列价格中。在我添加新行并选择其他服务(骨科医生)后,他的价格显示在列价格中,并且(牙医)的价格被移除以获得(骨科医生)的价格。这是为我添加的所有新行完成的。

如何保持所有行中每项服务的价格?

var numRows = 1,
    ti = 2;

function addRow() {
  $('#addr' + numRows).html("<td><select class='service form-control' onChange='getPrice(this.value);'><option value='' hidden></option><?php foreach($serv as $s){?><option  value='<?=$s->id?>'><?=$s->insumservicio?></option><?php }?></select></td><td class='total-pag-seg'><input  name='totalpagseg" + numRows + "' type='text' class='price form-control' value='' tabindex='" + (ti++) + "' /></td>");

  $('#turf tr:last').after('<tr id="addr' + (numRows + 1) + '" class="calculation visible"></tr>');
  numRows++;
}

function getPrice(val) {
  var insurance = "<?=$insurance?>";
  $.ajax({
    type: "POST",
    url: '<?php echo site_url('
    admin / getPrice ');?>',
    data: {
      id: val,
      insurance: insurance
    },
    success: function(data) {
      $("#turf").find('tr').each(function() {
        $(this).find('input.price').val(data);
      });
    };

  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="turf">
  <thead>
    <tr>
      <td><button id="add_row"> New row</button></td>
      <td>Service</td>
      <td>Price</td>
    </tr>
  </thead>
  <tbody>
    <tr id='addr1' class="calculation visible">
      <td></td>
      <td>
        <select class="service form-control" onChange="getPrice(this.value);">
<option value="" hidden></option>
<?php foreach($serv as $s){?>
<option  value="<?=$s->id?>"><?=$s->insumservicio?></option>
<?php
}
?>
</select>
      </td>
      <td>
        <input type="text" class="price" tabindex="1" />
      </td>
    </tr>
    <tr id='addr2' class="calculation visible">
  </tbody>
</table>

1 个答案:

答案 0 :(得分:2)

此示例可以指导您:

onChange='getPrice(this);'

function getPrice(dropDown) {
  var insurance = "<?=$insurance?>";
  $.ajax({
    type: "POST",
    url: '<?php echo site_url('
    admin / getPrice ');?>',
    data: {
      id: dropDown.value,
      insurance: insurance
    },
    success: function(data) {
        $($(dropDown).parents('tr')[0]).find('input.price').val(data);
    };

  });
}