Если вам нужно заполнить таблицу данными, как только вы получите JSON из своей выборки XHR, вы можете просто перебрать данные и построить строки таблицы.
Я не уверен, что вы имеете в виду , заполняя таблицу выбранными опциями. При необходимости предоставьте полный пример использования, но я понимаю, что вы хотите заполнить таблицу на основе выбора.
См. Пример ниже.
const tableEl = document.querySelector('.table');
const selectEl = document.querySelector('#select');
// Only show the record that matched the selection.
selectEl.addEventListener('change', e => {
// Or make a call to a different JSON endpoint...
populateTableWithJSON(tableEl, getJsonData().filter(record => {
return record.id === e.target.value;
}));
});
populateTableWithJSON(tableEl, getJsonData());
populateSelectWithJSON(selectEl, getJsonData(), {
idFn : r => r.id,
displayFn : r => `${r.id} ${r.mygoals}`
});
function populateSelectWithJSON(select, jsonData, opts={}) {
emptyElement(select);
jsonData.forEach((record, index) => {
let id = opts.idFn != null ? opts.idFn(record) : record.id || index;
let text = opts.displayFn != null ? opts.displayFn(record) : record.text || '';
select.appendChild(new Option(text, id));
});
}
function populateTableWithJSON(table, jsonData) {
let tbody = table.querySelector('tbody');
emptyElement(tbody);
if (jsonData != null && jsonData.length > 0) {
let headers = table.querySelectorAll('thead > tr th');
let fields = headers.length
? Array.from(headers).map(th => th.textContent)
: Object.keys(jsonData[0]);
jsonData.forEach(record => {
let tr = document.createElement('TR');
fields.forEach(field => {
let td = document.createElement('TD');
td.textContent = record[field];
tr.appendChild(td);
});
tbody.appendChild(tr);
});
}
}
function emptyElement(element) {
while (element.firstChild) {
element.removeChild(element.firstChild);
}
}
function getJsonData() {
return [{
"id": "1111",
"mygoals": "getmarried",
"future": "married",
}, {
"id": "2222",
"mygoals": "getmarried",
"future": "married",
}, {
"id": "33333",
"mygoals": "getmarried",
"future": "married",
}];
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
<div class="container">
<table class="table table-responsive-sm ">
<thead>
<tr>
<th>id</th>
<th>mygoals</th>
<th>future</th>
</tr>
</thead>
<tbody></tbody>
</table>
<select id="select" name="name"></select>
</div>