#javascript #ajax #codeigniter #codeigniter-3
Вопрос:
Моя цель-как я могу добавить результат обработки данных в текстовое поле html? Что я пробовал до сих пор, так это это (пожалуйста, смотрите коды ниже). Я обнаружил ошибку при ее создании:
Ошибка неперехваченного типа: Не удается прочитать свойства неопределенного (чтение «forEach»)
Это мой результат, который мне нужно добавить
Там что-то не так с моим предплечьем, и я начинаю путаться. Любая помощь будет оценена по достоинству. Спасибо.
HTML:
lt;div id="result"gt; lt;/divgt;
аякс:
let result = []; function newCombine(data, difference) { let nonMatched = [...data] const groups = {} for (let i = 0; i lt; nonMatched.length - 1; i ) { const first = nonMatched[i] inner: for (let j = nonMatched.length - 1; j gt; i; j--) { const second = nonMatched[j] const delta = Math.abs(first.weight - second.weight) if (delta lt;= difference amp;amp; first.entryName !== second.entryName) { const groupKey = `${first.weight}_${second.weight}` groups[groupKey] = [first, second] nonMatched = nonMatched.filter( obj =gt; obj.entryID != first.entryID amp;amp; obj.entryID != second.entryID ) i = -1 break inner } } } return { ...groups, ...nonMatched } } $(document).ready(function() { var entry_list =$('#entry_list1').DataTable({ "ajax": { "url": "lt;?php echo site_url('report/controlget')?gt;", "type": "get", success: function(data) { const source = data; const a = newCombine(source, 15); console.log(a); //this is the start of my data result appending to the html var keys = Object.keys(a) var count = 0; for (var i = 0; i lt; keys.length; i ) { result[keys[i]].forEach(function(val) { var length_ = val.length; val.forEach(function(value, index) { var idaa = value.eventID ; if (idaa == eventID){ if (length_ == 2) { var entryIDs = index == 0 ? "entryIDM[]" : "entryIDW[]" var players = index == 0 ? "playerM[]" : "playerW[]" var weights = index == 0 ? "weightM[]" : "weightW[]" var lightBands = index == 0 ? "lightBandM[]" : "lightBandW[]" html = `lt;input type="text" name="${entryIDs}" value="${value.entryID}"gt; lt;input type="text" name="${players}" value="${value.player}"gt; lt;input type="text" name="${weights}" value="${value.weight}"gt; lt;input type="text" name="${lightBands}" value="${value.lightBand}"gt; lt;input type="text" name="eventID" value="${value.eventID}"gt; ` } } }) }) } document.getElementById("result").innerHTML = html //add html to div }, } }); });
Контроллер:
public function controlget() { $list = $this-gt;reports-gt;getallentry(); echo json_encode( $list ); } Model: public function getallentry() { $this-gt;db-gt;select('entryID,entryName,weight'); $this-gt;db-gt;from('entry'); $query = $this-gt;db-gt;get(); return $query-gt;result(); }
Комментарии:
1.
result[keys[i]].forEach...
— Эффектresult
здесь либо пустой массив, либо не определен … ? И никогда не обновляется. PS: такой плохо отформатированный код не помогает при попытке прочитать и понять.