Title: Datagrid getChecked data to Array, Post to PHP and Parse [Solved]
Post by: xnoybx on September 19, 2015, 02:31:16 AM
Hello All, I have a problem with datagrid (not edatagrid) inline row editing, i try to modification easyui datagrid tutorial http://www.jeasyui.com/tutorial/datagrid/datagrid3.php (http://www.jeasyui.com/tutorial/datagrid/datagrid3.php) My question is: 1. how can i get all checked row to array including numberbox, textbox and combobox value ? 2. post them to PHP ? 3. Parse the array ini PHP, so i can insert them to Database. Please Help Me, Thanks. HTML <table id="dg" class="easyui-datagrid" style="width:600px;height:250px" url="data/datagrid_data.json" title="Load Data" iconCls="icon-save" fitColumns="true" idField="itemid"> <thead> <tr> <th field="ck" width="80" checkbox="true">Item ID</th> <th field="itemid" width="80">Item ID</th> <th field="productid" width="80">Product ID</th> <th field="listprice" width="80" align="right">List Price</th> <th field="unitcost" width="80" align="right" data-options="editor:'numberbox'">Unit Cost</th> <th field="attr1" width="150" data-options="editor:'textbox'">Attribute</th> <th field="statusName", data-options="align: 'center', editor:{ type:'combobox', options:{ valueField:'statusId', textField:'statusName', panelHeight:'auto', data: [{ statusId: '', statusName: '- Choose -' },{ statusId: 'true', statusName: 'Active' },{ statusId: 'false', statusName: 'Non Active' }] } } " width="80"><b>Status</b></th> </tr> </thead> </table>
Javascript <script> function save() { var ids = []; var rows = $('#dg').datagrid('getSelections'); for(var i=0; i<rows.length; i++){ ids.push(rows[i].itemid); } alert(ids.join('\n')); } $(document).ready(function () { var lastIndex; $('#dg').datagrid({ onLoadSuccess: function(data) { $('#dg').datagrid('getPanel').find('div.datagrid-header input[type=checkbox]').attr('disabled','disabled'); }, onCheck: function(index,row){ if(lastIndex != index) { $(this).datagrid('beginEdit', index); } }, onUncheck: function(index,row){ if(lastIndex != index) { $(this).datagrid('endEdit', index); } }, }); }); </script>
Title: Re: Datagrid getChecked data to Array, Post to PHP and Parse
Post by: stworthy on September 19, 2015, 07:31:08 PM
Please try the code below to get all the checked editing row. var rows = []; var dg = $('#dg'); $.map(dg.datagrid('getChecked'), function(row){ var index = dg.datagrid('getRowIndex', row); var editors = dg.datagrid('getEditors', index); if (editors.length){ rows.push({ itemid:row.itemid, unitcost:$(editors[0].target).numberbox('getValue'), attr1:$(editors[1].target).textbox('getValue'), statusName:$(editors[2].target).combobox('getValue') }); } }); console.log(rows)
You can stringify it and post to your server.
Title: Re: Datagrid getChecked data to Array, Post to PHP and Parse
Post by: xnoybx on September 22, 2015, 06:36:15 AM
Thank for reply stworthy. Its Works. And this i give the code Javascript function save() { var rows = []; var dg = $('#dg'); $.map(dg.datagrid('getChecked'), function(row){ var index = dg.datagrid('getRowIndex', row); var editors = dg.datagrid('getEditors', index); if (editors.length){ rows.push({ itemid: row.itemid, unitcost: $(editors[0].target).numberbox('getValue'), attr1: $(editors[1].target).textbox('getValue'), statusName: $(editors[2].target).combobox('getValue') }); } }); $.ajax({ url:'./data.php', type: 'POST', data: {data: JSON.stringify(rows)}, cache: false }); }
PHP (data.php) $conn = mysqli_connect($host, $user, $pass, $db); $data = json_decode($_POST['data'], true); mysqli_query($conn, "DELETE * FROM tbl_test"); foreach($data as $dt) { mysqli_query($conn, "INSERT INTO tbl_test (itemid, unitcost, attr1, statusName) VALUES ('$dt[itemid]', '$dt[unitcost]', '$dt[attr1]', '$dt[statusName]')"); } ?>
I think is the good way, if i wrong please correct.
|