Как из textarea принять данные в таблицу

273
23 марта 2017, 21:12

Есть текстовое поле на странице, нужно его заполнять в формате:

[{
    id: "1",
    name: "Ivan",
    age: 25,
    friends: 5
},
{
    id: "2",
    name: "Maria",
    age: 23,
    friends: 10
},
{
    id: "3",
    name: "Alex",
    age: 47,
    friends: 3
},
{
    id: "4",
    name: "James",
    age: 34,
    friends: 12
}];

Все это переменная data. И этими значениями мы должны заполнить динамически создающуюся таблицу. Если переменную data просто прописывать в коде, к примеру

var data = [{...},{...},{...}]; 

то все работает хорошо. Но вот как сделать, чтобы по кнопке, когда уже значения введены в поле, все закидывалось в таблицу?

Answer 1

Допустим, вы получили строку из поля и записали ее в переменную strArea

var strArea = '[{id:"1",name:"Ivan",age:25,friends:5},{id:"2",name:"Maria",age:23,friends:10},{id:"3",name:"Alex",age:47,friends:3},{id:"4",name:"James",age:34,friends:12}];'

Получить из этой строки data, можно, воспользовавшись eval:

var data = eval(strArea);
Answer 2

Парсим с помощью JSON.parse (предварительно сделав "правильный" json) и в цикле загоняем в таблицу:

var data = '[{id:"1",name:"Ivan",age:25,friends:5},{id:"2",name:"Maria",age:23,friends:10},{id:"3",name:"Alex",age:47,friends:3},{id:"4",name:"James",age:34,friends:12}]'; 
 
$('body').on('click', 'button', function() { 
  var realJSON = data.replace(/([\w]+):/g, '"$1":'); 
  var dataObj = JSON.parse(realJSON); 
  for(var i = 0; i < dataObj.length; i++) { 
    var row = '<tr><td>' + dataObj[i].id + '</td><td>' + dataObj[i].name + '</td><td>' + dataObj[i].age + '</td><td>' + dataObj[i].friends + '</td></tr>'; 
    $('table').append(row); 
  } 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<button>Жми</button> 
<table border="1" rules="all"></table>

READ ALSO
Модальные окна + ajax запросы

Модальные окна + ajax запросы

Здравствуйте, я раньше писал на php и с ajax/jquery сталкивался не так частоСейчас встала потребность в более-менее современном интерфейсе для приложения

393
Динамическая runtime установка значений для Select2 контрола с свойством multiple (множественного выбора)

Динамическая runtime установка значений для Select2 контрола с свойством multiple (множественного выбора)

Есть обычный SELECT он преобразован в SELECT2 контрол с свойством multiple (множественного выбора)Есть массив с некоторыми опциями из SELECTа и нужно перебирая...

231
Как сделать в jquery плавный скролинг к якорю?

Как сделать в jquery плавный скролинг к якорю?

Есть код, где переход по ссылке ведет к якорю ajax-представленияКод, динамически меняющегося контента, скрипта ajax работает

339
Jquery: как получить все вложенные элементы, кроме тех, у кого определённый класс

Jquery: как получить все вложенные элементы, кроме тех, у кого определённый класс

Как получить все вложенные элементы, кроме тех, у кого определённый класс?

324