Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.04.2016, 16:29
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

Собрать массив из таблицы
Всем привет, конец рабочего дня - затуп начался.

есть таблица

id data text
0 123 comment

соответственно берем все строки:
$('#'+id+' tr').each(function(index, value) {}


Перебираем все td (их кол-во динамическое) внутри input с name (id,data,text)

arrayData=[];
$('#'+id+' tr').each(function(index, value) {
  $(this).children('td').children('input').each (function() {
    вот тут надо собрать в ассоциативный массив, как ?
  });
});
}


т.е. надо собрать - name input'a это имя переменной value input'a это значение переменной...

Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2016, 16:31
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

т.е. на выходе надо что то вроде:
array {
id=>0,
data=>123,
text=>comment
}

соответственно с учетом того что строк много, т.е.:
array {
[0]=>array {
id=>0,
data=>123,
text=>comment
}
[1]=>array{
id=>1,
data=>456,
text=>comment2
}
}
Ответить с цитированием
  #3 (permalink)  
Старый 25.04.2016, 16:35
Аспирант
Отправить личное сообщение для V2oD2o Посмотреть профиль Найти все сообщения от V2oD2o
 
Регистрация: 19.01.2011
Сообщений: 59

для примера, возьмем некий мусор:

<table style="width:100%;font-size:12px;" cellspacing="0" cellpadding="3" id="tableFields_datalist_id">
<tbody>
<tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="0" name="id"></td>
	<td><input style="width:100%;" type="text" value="Alerana" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr><tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="1" name="id"></td>
	<td><input style="width:100%;" type="text" value="Redken" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr><tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="2" name="id"></td>
	<td><input style="width:100%;" type="text" value="Matrix" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr><tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="3" name="id"></td>
	<td><input style="width:100%;" type="text" value="Loreal" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr>
</tbody></table>


С массивами в JS у меня туговато, но требуют чтоб все через ajax сохранялось на лету, по другому как передать - хз, только если массивом через POST

Последний раз редактировалось V2oD2o, 25.04.2016 в 16:39.
Ответить с цитированием
  #4 (permalink)  
Старый 25.04.2016, 16:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от V2oD2o
вот тут надо собрать в ассоциативный массив, как ?
А поместить таблицу в форму и просто ее сериализовать, что нельзя?
Ответить с цитированием
  #5 (permalink)  
Старый 25.04.2016, 17:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

V2oD2o,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

 </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

</script>
  <script>
 $(function(){
var id = 'tableFields_datalist_id',
arrayData= $.map($('#'+id+' tr'), function(el,i) {
var inp = $('input', el);

return ['id','data','text'].reduce( function(obj, key, indx) {
   obj[key] = inp[indx].value;
   return obj
},{})

});
$('p').text(JSON.stringify(arrayData))

   })
  </script>
</head>

<body>
<p></p>
<table style="width:100%;font-size:12px;" cellspacing="0" cellpadding="3" id="tableFields_datalist_id">
<tbody>
<tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="0" name="id"></td>
	<td><input style="width:100%;" type="text" value="Alerana" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr><tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="1" name="id"></td>
	<td><input style="width:100%;" type="text" value="Redken" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr><tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="2" name="id"></td>
	<td><input style="width:100%;" type="text" value="Matrix" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr><tr class="selectable" style="">
	<td width="30"><input style="width:30px;" type="text" disabled="" value="3" name="id"></td>
	<td><input style="width:100%;" type="text" value="Loreal" name="data"></td>
	<td><input type="text" name="text" style="width:100%;"></td>
</tr>
</tbody></table>


</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема получения объекта JSON espltd Элементы интерфейса 13 03.02.2016 14:55
Как собрать все данные из таблицы, и отправить массив на сервер optsar AJAX и COMET 14 11.12.2015 07:58
Создание таблицы с чекбоксом используя массив jeka Javascript под браузер 3 09.04.2014 17:23
Собрать все одинаковые классы в массив в jQuery lev-otinov jQuery 3 25.09.2013 15:55
Собрать массив из элементов DOM Fairy-Wilbury Events/DOM/Window 4 13.09.2013 17:30