0

サーバーへの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);


?>
4

1 に答える 1

1

XML データ型とローカル データ型で混乱していると思います。データ型が指定するのは、グリッドにフィードするデータがどこから来るかです。ローカルとは、クライアント側の他の部分からのデータを含む変数を提供することを意味し、XML とは、URL から XML 形式のデータを提供することを意味します。(サーバー側の処理)

Firebug/Chrome を使用して、更新後にグリッドが送信するデータ、その形式、および送信先を確認できるはずです。編集後、functions.phpグリッドへの投稿は、編集によるデータセットへの変更を反映したリロードでリロードされます。

于 2013-02-11T19:19:09.033 に答える