EasyUI Forum
September 14, 2025, 03:54:42 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Datagrid getChecked data to Array, Post to PHP and Parse [Solved]  (Read 18330 times)
xnoybx
Newbie
*
Posts: 7


View Profile Email
« 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

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
Code:
<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
Code:
<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>
« Last Edit: September 26, 2015, 10:06:34 AM by xnoybx » Logged
stworthy
Administrator
Hero Member
*****
Posts: 3581


View Profile Email
« Reply #1 on: September 19, 2015, 07:31:08 PM »

Please try the code below to get all the checked editing row.
Code:
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.
Logged
xnoybx
Newbie
*
Posts: 7


View Profile Email
« Reply #2 on: September 22, 2015, 06:36:15 AM »

Thank for reply stworthy. Its Works.

And this i give the code

Javascript
Code:
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)
Code:
$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.
« Last Edit: September 22, 2015, 06:59:39 AM by xnoybx » Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!