in Jqgrid how to show dropdown value which was updated in database by user by inline edit

↘锁芯ラ 提交于 2019-12-31 05:39:11

问题


below is the code, in this the dropdown selected by the user is getting updated in database, but after refreshing the page i want to to display the value from database which was selected by user previously.now after refreshing the page the cell is blank.kindly help.

$qr="SELECT id,`emp_id`,`emp_name`, `att_date`, `emp_join_date`, `intime`,`outtime`,`Total_Hours`,`OT Hours`,`Status` FROM `db_emp_attendance` WHERE Status='Absent' and att_date='2017-04-01'";
$q = mysql_query($qr);
$rows = array();
while($r = mysql_fetch_assoc($q)) {
    $rows[] = $r;
}
$json_data=json_encode($rows);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <script type="text/ecmascript" src="jquery.min.js"></script>
    <script type="text/ecmascript" src="jquery.jqGrid.min.js"></script>
    <script type="text/ecmascript" src="grid.locale-en.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="jquery-ui.css"/>
    <link rel="stylesheet" type="text/css" media="screen" href="ui.jqgrid.css"/>
    <meta charset="utf-8" />
</head>
<body>

<table id="rowed5"></table>

<script type="text/javascript"> 
var lastsel2
jQuery("#rowed5").jqGrid({
datatype: "local",
height: 400,
autowidth: true,
colNames:['ID','Emp ID','Name', 'Join Date','Attendance Date', 'Time In','Time Out','Total Hours','OT Hours','Status','leave_type'],
colModel:[
{name:'id',index:'id', width:75,align:"center",key: true},
{name:'emp_id',index:'emp_id', width:75,align:"center"},
{name:'emp_name',index:'emp_name', width:150,align:"left"},
{name:'emp_join_date',index:'emp_join_date', width:150,align:"center"},
{name:'att_date',index:'att_date', width:100, align:"center"},      
{name:'intime',index:'intime', width:80,align:"center"},        
{name:'outtime',index:'outtime', width:80,align:"center"},
{name:'Total_Hours',index:'Total_Hours', width:80,align:"center"},
{name:'OT Hours',index:'OT Hours', width:80,align:"center"},
{name:'Status',index:'Status', width:150,align:"center"},
    {name:'leave_type',index:'leave_type', width:150, 
    sortable:false,editable: true,
edittype: "select",
editoptions: {
value: "SickLeave:SickLeave;DayOff:DayOff;Vacation:Vacation"}
}
],

onSelectRow: function(id){
if(id && id!==lastsel2){
jQuery('#rowed5').jqGrid('restoreRow',lastsel2);
jQuery('#rowed5').jqGrid('editRow',id,true);
lastsel2=id;
}
},
editurl:'update.php',
    cellEdit : true,
        cellsubmit : 'remote',
        cellurl : 'update.php',
        caption: "Attendance"

});
var mydata2 =<?PHP echo $json_data;?>;
for(var i=0;i < mydata2.length;i++)
 jQuery("#rowed5").jqGrid('addRowData',mydata2[i].id,mydata2[i]);
 </script>
</body>
</html>

回答1:


Free jqGrid 4.14.0 allows to generate the editoptions.value or editoptions.value based on the all data of the grid. The setting in the column could looks like

edittype: "select",
editoptions: { generateValue: true },
stype: "select",
searchoptions: {
    sopt: ["eq", "ne"],
    generateValue: true,
    noFilterText: "Any"
}

If you use the filter toolbar, then the only thing, which one have to do additionally is recreating the filter toolbar by calling destroyFilterToolbar and filterToolbar methods. Editing have no such problems.

The demo https://jsfiddle.net/OlegKi/yvbt6w54/1/, which I referenced in the README of the version 4.14.0, demonstrates the feature. Moreover, the demo shows how one can combine the feature with jQuery UI Autocomplete and select2.



来源:https://stackoverflow.com/questions/43870268/in-jqgrid-how-to-show-dropdown-value-which-was-updated-in-database-by-user-by-in

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!