У меня возникла проблема с перезагрузкой сетки с помощью триггера ('reloadGrid'). Я отправляю вызов AJAX на сервер, и сервер отлично возвращает xmlstring. но сетка не загружает новые данные. heres мой код:
$('#tasks').jqGrid({ datatype: "xmlstring", datastr: <?php echo json_encode($_xml); ?>, colNames: ["Date","TaskID","Subject","Notes","Due Date"], colModel: [ {name: "Date", index:"AssignDate",align: "center", xmlmap:"AssignDate"}, {name: "TaskID", index:"TaskID",xmlmap:"TaskID", align:"center"}, {name: "Subject", index:"TaskSubject", align: "center", xmlmap:"TaskSubject"}, {name:"Notes", index:"Notes", align: "center",height: 20,xmlmap:"Notes"}, {name:"Due Date", index:"DueDate", align: "center",height: 20,xmlmap:"DueDate"} ], height: 250, viewRecords: true, autowidth: true, xmlReader: { root: "tasks", row: "task", repeatitems: false }, pager: $('#navTasks'), caption: "Your Tasks"}); setInterval( function(){ $.ajax({ url: 'register.php', data: {uID:uID}, dataType: 'xmlstring', success: function(xml) { $("#tasks").setGridParam({datastr: xml, datatype: "xmlstring"}).trigger('reloadGrid') } });},10000);
вот мой файл register.php:
$uID = $_GET['uID']; $host="127.0.0.1:3306"; $db_name='wf_db'; $tbl_name="tasks"; $connect = new mysqli("$host","root"," ","$db_name")or die('Can\'t connect to database!'); $sql = "SELECT * FROM $tbl_name WHERE UserID='$uID' and Task_Completed='0'"; $query_data = mysqli_query($connect,$sql)or die('Couldnt get data'); $row = mysqli_num_rows($query_data); if($row != 0){ $_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n"; $_xml .="<tasks>\r\n"; while ($result = mysqli_fetch_array($query_data)) { if ($result["TaskID"]) { $_xml .="\t<task>\r\n"; $_xml .="\t\t<TaskID>" . $result["TaskID"] . "</TaskID>\r\n"; $_xml .="\t\t<UserID>" . $result["UserID"] . "</UserID>\r\n"; $_xml .="\t\t<AssignID>" . $result["AssignID"] . "</AssignID>\r\n"; $_xml .="\t\t<AssignDate>" . $result["Assign_Date"] . "</AssignDate>\r\n"; $_xml .="\t\t<DueDate>" . $result["Due_Date"] . "</DueDate>\r\n"; $_xml .="\t\t<AssignUser>" . $result["Assign_User"] . "</AssignUser>\r\n"; $_xml .="\t\t<TaskSubject>" . $result["Task_Subject"] . "</TaskSubject>\r\n"; $_xml .="\t\t<Notes>" . $result["Notes"] . "</Notes>\r\n"; $_xml .="\t\t<TrackID>" . $result["TrackID"] . "</TrackID>\r\n"; $_xml .="\t\t<Details>" . $result["Completion_Details"] . "</Details>\r\n"; $_xml .="\t</task>\r\n"; } else { $_xml .="\t<task>\r\n"; $_xml .="\t\t<TaskID></TaskID>\r\n"; $_xml .="\t\t<UserID></UserID>\r\n"; $_xml .="\t\t<AssignID></AssignID>\r\n"; $_xml .="\t\t<AssignDate></AssignDate>\r\n"; $_xml .="\t\t<DueDate></DueDate>\r\n"; $_xml .="\t\t<AssignUser></AssignUser>\r\n"; $_xml .="\t\t<TaskSubject></TaskSubject>\r\n"; $_xml .="\t\t<Notes></Notes>\r\n"; $_xml .="\t\t<TrackID></TrackID>\r\n"; $_xml .="\t\t<Details></Details>\r\n"; $_xml .="\t</task>\r\n"; } } $_xml .="</tasks>"; echo json_encode($_xml); } else { echo 'Oops something went wrong!'; }
ОБНОВИТЬ:
var data = <?php echo json_encode($_xml); ?>; var uID = <?php echo $uID; ?>;$grid.jqGrid({ datatype: "xmlstring", datastr: data, url: 'register.php', sortname: 'Job ID', sortOrder: 'asc', postData: {uID:uID}, colNames: ["track","Job ID","Subject","Notes","Details","Due Date"], colModel: [ {name: "track", index:"TrackID",align: "center", xmlmap:"TrackID", hidden: true, sortable: true}, {name: "Job ID", index:"TaskID",xmlmap:"TaskID", align:"center",sortable: true, sorttype: 'text', sortable: true, editable: false, editoptions: {readonly: true}}, {name: "Subject", index:"TaskSubject", align: "center", xmlmap:"TaskSubject",sorttype: 'text', sortable: true,editable: false, editoptions: {readonly: true}}, {name:"Notes", index:"Notes", align: "center",height: 20,xmlmap:"Notes",sorttype: 'text', sortable: true,editable: false, editoptions: {readonly: true}}, {name:"Details", index:"Details", align: "center", xmlmap:"Details", editable: true, edittype: 'select', editoptions: {value: 'Not Started:Not Started;In Progress:In Progress;Completed:Completed'}, sortable: true}, {name:"Due Date", index:"DueDate", align: "center", xmlmap:"DueDate",sorttype: 'text', sortable: true, editable: true, editoptions: {dataInit: initDateEdit}, formatter: 'date', formatoptions: {newformat: 'dM-Y'}, datefmt: 'dM-Y'} ], editurl: 'editRow.php', rowNum: 10, rowList: [10,20,50], viewRecords: true, xmlReader: { root: "tasks", row: "task", repeatitems: false }, pager: $('#navTasks'), caption: "Your Tasks" }).navGrid('#navTasks',{<?php if ($user==NULL){ echo 'edit:false,add:false,del:false'; } else{ echo 'edit:false,add:false,del:false'; } ?>},{},{},{},{multipleSearch: false, multipleGroup: false}); setInterval( function(){ $grid.trigger('reloadGrid',[{current:true}]);},6000);