2013-05-15 1 views
0

Пожалуйста, дайте «направление, куда идти»Javascript для каждого вместо нескольких, если

Многие входные строки. Для каждой строки это поле class="row_changed"

Если значение в поле больше 0, то ajax передает всю строку в php. Каждая строка включена в <tr> </tr> Для каждого <tr> идентификатора устанавливаются <tr id='row'>

На данный момент я могу сделать это только со многим if

Нужно что-то вроде: если значение в любом из поля поля class="row_changed" больше 0, то пройдите соответствующую строку (внутри <tr id='row'>) на php.

Here - некоторые данные. Подходит ли он для описанного случая?

<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); 
} 

ответ

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) 
     } 
    }); 
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); 
}