2014-11-18 6 views
0

создать форму с матрицей, как это:Чтение пользовательского ввода матрицы в двухмерном массив

for(var i = 0; i < rows; i++) 
      { 
       for(var j = 0; j < columns; j++) 
       { 
        var input = $('<input>') 
         .attr({ 
          class: 'matrix_cell', 
          value: 0}); 
        form.appendChild(input[0]); 
       } 
       var br = $('<br>')[0]; 
       form.appendChild(br); 
      } 

И я хочу прочитать матрицу, пользователь введенную в двухмерном массив, а затем передать его в PHP файл в AJAX запрос.

Я попробовал этот путь:

function getMatrix(){ 
     var matrix_row = [] 

     $("#matrix_form").find("input").each(function(i){ 
      var value = $(this).val(); 
      if (!isNaN(value)){ 
       matrix_row[i] = value; 
      } 
     }); 

     return matrix_row; 
    } 

Но он считывает матрицу одномерного массива.

+0

Похоже, вы только ввод в одномерный массив. Вам нужен еще один счетчик, чтобы вы могли что-то делать по строкам matrix_row [i] [j] = value; – VtoCorleone

ответ

0

См http://jsfiddle.net/hcbLozd7/

function getMatrix(){ 
    var matrix_row = []; 

    var ind = 0; 

    $("#frm").contents().each(function(i,e){ //for all contents in div 
     if (this.nodeName == "INPUT") //if it's input 
     { 
      if (!matrix_row[ind]){ //it matrix doesn't have a new array, push a new array 
       matrix_row.push([]); 
      } 
      matrix_row[ind].push($(this).val()); //add input value to array inside array 
     } 
     else{ //when element is br 
      ind++; //increment counter 
     } 
    }); 

    return matrix_row; 
}