I turned on debug mode to try to determine why.
mysqli): SELECT * FROM my_table WHERE 1=1 LIMIT 1 OFFSET 0
(mysqli): UPDATE my_table SET `product_id`=”,`warehouse_id`=”,`qty`=’1′,`available_qty`=”,`ship_qty`=”,`room_shelf`=”,`cost`=”,`sale`=”,`backorders`=”,`stock_status`=” WHERE `item_id` IN (”)
{“id”:””,”success”:true}
This is the data sent with the request:
item_id
product_id
warehouse_id
qty
1
available_qty
ship_qty
room_shelf
cost
sale
backorders
stock_status
oper
edit
id
1,2
And here is the php setup:
$g = new jqgrid($db_conf);
$g->con->debug = 0;
$g->table = “my_table”;
$opt=[];
$opt[“multiselect”] = true;
$g->set_options($opt);
$g->set_actions(array(
“add”=>true,
“edit”=>true,
“clone”=>true,
“bulkedit”=>true,
“delete”=>true,
“view”=>true,
“rowactions”=>true,
“export”=>true,
“import”=>true,
“autofilter” => true,
“search” => “simple”,
“inlineadd” => true,
“showhidecolumns” => true
)
);
$out = $g->render(“list1”);
It seems to send the right ids, but not put them in the IN condition as it should, it also seems like it will wipe out rather than ignore the blank field values which is not good at all. I saw to attach code via gist but I don’t have a github account and don’t wish for one.
Not an answer but an update, i managed to get it to work with this php code but it’s not ideal since it basically rewrote the entire update process. I included some basic calcs I need too but ya. I’d like to not have to write custom update queries for every grid I make and wonder why it doesn’t work out of the box. Thanks.
$e[“on_update”] = array(“update_client”, null, true);
function update_client(&$data) {
//multiupdate
if(!empty($_REQUEST[‘id’]) && $_REQUEST[‘oper’]==’edit’){
$item_ids = explode(“,”,$_REQUEST[‘id’]);
$params = [];
foreach($_POST as $k=>$v){
if(!empty($v) && $k!=’oper’ && $k!=’id’) $params[$k]=$v;
}
////print_r($params);
$setstr = ”;
foreach($params as $k=>$v){
$setstr.=”$k=’$v’,”;
}
$setstr = rtrim($setstr,”,”);
foreach($item_ids as $item_id){
$row = qone(“select * from my_table where item_id=$item_id”);
if(isset($params[‘qty’])){
$avail_qty = $params[‘qty’] – $row[‘ship_qty’];
$setstr.=”,available_qty=$avail_qty”;
}
qup(“update my_table set $setstr where item_id=$item_id”);
}
//print_r($data);
//die();
}
else {
#$row = qone(“select * from my_table where item_id=$data[item_id]”);
$data[“params”][“available_qty”] = $data[‘params’][‘qty’] – $row[‘ship_qty’];
}
}
$g->set_events($e);
I’ve also emailed you latest build that should solve it.