サーバーへのphp呼び出しを介して、グリッドにデータを入力したり、更新を実行したりできます。両方を行うグリッドを構築することはできないようです。以下のコードには、url と editurl の両方があります。どちらも同じphpページを指していますが、これは必要だと思います。PHP ページで、POST を介してセルの内容を収集し、それらをファイルに出力しています。このコードが正確であることはわかっています。なぜなら、データを保存するだけで、php サーバー呼び出しで入力しようとしないグリッドで使用すると機能するからです。JQGrid を初めて使用するので、データの保存方法と送信方法がわかりません。また、データを保存するには datatype: 'local' を使用する必要がありましたが、グリッドに入力するには datatype: 'xml' を使用する必要があることに注意してください。おそらくこれが問題ですか?
$("#list").jqGrid({
url:'functions.php',
datatype:'xml',
mtype:'POST',
colNames:['Label','Account_Num','Amount', 'Type Code', 'Record Code', 'Sequence','Actions'],
colModel :[
{name:'label', index:'label', width:150, align:'center', sortable:false, editable:true},
{name:'cntrct_id', index:'cntrct_id', width:150, align:'center', sortable:true},
{name:'amount', index:'amount', width:150, align:'center', sortable:false, editable:true},
{name:'type_cd', index:'type_cd', width:150, align:'center', sortable:false, editable:true},
{name:'rec_cd', index:'rec_cd', width:150, align:'center', sortable:false},
{name:'db_seq', index:'db_seq', width:150, align:'center', sortable:false},
{ name:'actions',
classes:'jg_actions',
formatter:"actions",
editable:false,
sortable:false,
resizable:false,
fixed:true,
width:120,
formatoptions:{
keys:true,
delbutton:true,
onSuccess: function(response){
},
},
},
],
editurl: 'functions.php',
postData: {
action:'popGrid',
sqlCount:sqlCount,
sqlSelect:sqlSelect,
sqlSelect2:sqlSelect2,
label1:label1,
label2:label2,},
onSelectRow: function(id){
if(id && id!==lastSel){
jQuery('#list').restoreRow(lastSel);
jQuery('#list').editRow(id,true);
lastSel=id;
}
},
pager: '#pager',
rowNum:100,
rowList:[100,200,300,400,500,600,700,800,900,1000],
sortname: 'cntrct_id',
sortorder: 'desc',
viewrecords: true,
caption: 'Adjustments'
});
<?php
$label = $_POST['label'];
$cntrct_id = $_POST['cntrct_id'];
$amount = $_POST['amount'];
$type_cd = $_POST['type_cd'];
$rec_cd = $_POST['rec_cd'];
$db_seq = $_POST['db_seq'];
$myfile = "text.txt";
$fh = fopen($myfile,'a');
fwrite($fh,$label.' '.$cntrct_id.' '.$amount.' '.$type_cd.' '.$rec_cd.' '.$db_seq);
fclose($fh);
?>