function do_ajax_action(action, val=null){ $.ajaxSetup({async: false}); $.post( '/m-form-process.php?action='+action+'&val='+val, $("#form1").serialize(), function(data){ let obj; try { obj = JSON.parse(data); } catch (error) { obj = {}; } if(obj.length>0){ $.each(obj, function(index){ one_obj=$(this)[0]; if ($('#'+one_obj.id).length<=0) return; update_object(one_obj); }) } } ); } function update_object(one_obj){ switch(one_obj.attr){ case 'val': $('#'+one_obj.id).val(one_obj.value); break; case 'html': $('#'+one_obj.id).html(one_obj.value); break; default: $('#'+one_obj.id).replaceWith(one_obj.value); break; } } function createSelectFromJson1(jsonInput, selectId, selectedId = null, className = '', dataAttrs = {}) { // Nếu là string, cố gắng parse, còn không thì giữ nguyên let objArr = []; if (typeof jsonInput === 'string') { try { objArr = JSON.parse(jsonInput); } catch (e) { return ''; } } else if (Array.isArray(jsonInput)) { objArr = jsonInput; } else if (typeof jsonInput === 'object' && jsonInput !== null) { // Nếu là object, nhưng không phải mảng (hiếm gặp) objArr = [jsonInput]; } else { return ''; } let dataAttrStr = ''; for (let key in dataAttrs) { dataAttrStr += ' data-' + key + '="' + dataAttrs[key] + '"'; } let selectHtml = ''; return selectHtml; } // Hàm tạo select từ chuỗi JSON function createSelectFromJson(jsonInput, selectId, selectedId = null, className = '', dataAttrs = {}) { // Nếu là string, cố gắng parse, còn không thì giữ nguyên let objArr = []; if (typeof jsonInput === 'string') { try { objArr = JSON.parse(jsonInput); } catch (e) { return ''; } } else if (Array.isArray(jsonInput)) { objArr = jsonInput; } else if (typeof jsonInput === 'object' && jsonInput !== null) { // Nếu là object, nhưng không phải mảng (hiếm gặp) objArr = [jsonInput]; } else { return ''; } let dataAttrStr = ''; for (let key in dataAttrs) { dataAttrStr += ' data-' + key + '="' + dataAttrs[key] + '"'; } let selectHtml = ''; return selectHtml; } // Hàm tạo checkbox[] từ chuỗi JSON function createCheckboxesFromJson(jsonInput, name, checkedIds = [], className = '', dataAttrs = {}) { // Nếu là string, cố gắng parse, còn không thì giữ nguyên let objArr = []; if (typeof jsonInput === 'string') { try { objArr = JSON.parse(jsonInput); } catch (e) { return ''; } } else if (Array.isArray(jsonInput)) { objArr = jsonInput; } else if (typeof jsonInput === 'object' && jsonInput !== null) { // Nếu là object, nhưng không phải mảng (hiếm gặp) objArr = [jsonInput]; } else { return ''; } let dataAttrStr = ''; for (let key in dataAttrs) { dataAttrStr += ' data-' + key + '="' + dataAttrs[key] + '"'; } let html = ''; objArr.forEach(function(item, idx) { let checked = (checkedIds.includes(item.id)) ? ' checked' : ''; let optionDataAttrs = ''; if (item.data) { for (let k in item.data) { optionDataAttrs += ' data-' + k + '="' + item.data[k] + '"'; } } let inputId = name + '_' + item.id; html += ' '; }); return html; } // Hàm tạo radio[] từ chuỗi JSON function createRadiosFromJson(jsonInput, name, checkedId = null, className = '', dataAttrs = {}) { // Nếu là string, cố gắng parse, còn không thì giữ nguyên let objArr = []; if (typeof jsonInput === 'string') { try { objArr = JSON.parse(jsonInput); } catch (e) { return ''; } } else if (Array.isArray(jsonInput)) { objArr = jsonInput; } else if (typeof jsonInput === 'object' && jsonInput !== null) { // Nếu là object, nhưng không phải mảng (hiếm gặp) objArr = [jsonInput]; } else { return ''; } let dataAttrStr = ''; for (let key in dataAttrs) { dataAttrStr += ' data-' + key + '="' + dataAttrs[key] + '"'; } let html = ''; objArr.forEach(function(item, idx) { let checked = (item.id == checkedId) ? ' checked' : ''; let optionDataAttrs = ''; if (item.data) { for (let k in item.data) { optionDataAttrs += ' data-' + k + '="' + item.data[k] + '"'; } } let inputId = name + '_' + item.id; html += ' '; }); return html; }