0

请给出“去哪里的方向”

许多输入行。对于每一行都是字段class="row_changed"

如果字段中的值大于 0,则 ajax 将整行传递给 php。每行都包含在<tr> </tr>为每个<tr>id 设置<tr id='row'>

目前我只能和很多人一起做if

需要类似:如果任何字段字段class="row_changed"中的值大于0,则将相应的行(内部<tr id='row'>)传递给php。

是一些信息。它是否适合所描述的情况?

<tr id='row1'>
  <td>
    <input type="text" name="row1[]" id="date_day1" class="row_changed1">
  </td>
    ...
  <td>
    <input type="text" name="row1[]" id="is_row_changed1" size="1">
    <script>
      $(".row_changed1").on("change", function () {
        document.getElementById('is_row_changed1').value = 1;
      });
    </script>
  </td>
<tr>

if ($("#is_row_changed1").val() > 0) {
  $.post("_autosave_array.php", $("#row1 :input").serialize(), function (data1) {
    $('#load1').html(data1);
    $('#is_row_changed1').val(0)
  });
  var str = $("#row1 :input").serialize();
  $("#load1_1").text(str);
}

if ($("#is_row_changed2").val() > 0) {
  $.post("_autosave_array.php", $("#row2 :input").serialize(), function (data2) {
    $('#load2').html(data2);
    $('#is_row_changed2').val(0)
  });
  var str = $("#row2 :input").serialize();
  $("#load2_1").text(str);
}
4

2 回答 2

1

我可以看到您所有的输入标签都具有相同的名称,您可以按名称选择所有标签,然后将您的条件/逻辑放入其中

样本:

$("input[name='row1[]']").each(function(){
        if($(this).val()>0){
            $.post("_autosave_array.php", $("#row1 :input").serialize(), function (data1) {
            $('#load1').html(data1);
            $('#is_row_changed1').val(0)
        }
    });
于 2013-05-15T15:38:52.347 回答
1

这样的事情应该这样做:

function doPost(changedRowId,serializeRowId,resultId,serializeResultId){
  if ($(changedRowId).val() > 0) {
    $.post("_autosave_array.php", $(serializeRowId + ":input").serialize(), function (data2) {
      $(resultId).html(data2);
      $(changedRowId).val(0)
    });
    var str = $("#row2 :input").serialize();
    $(serializeResultId).text(str);
}

var rowData = [{changedRowId: "#is_row_changed1", serializeRowId: "#row1", resultId: "#load1", serializeResultId: "#load1_1"},
               {changedRowId: "#is_row_changed2", serializeRowId: "#row2 ", resultId: "#load2". serializeResultId: "#load2_1"}
              ];

for(var i = 0; i < rowData.length; ++i){
   var data = rowData[i];
   doPost(data.changedRowId,data.serializeRowId,data.resultId,data.serializeResultId);
}
于 2013-05-15T15:40:21.213 回答