チュートリアルからすべての作業を行い、それを自分のデータに置き換えましたが、ハードコーディングされた状況です。たとえば、私が取り組んでいるチュートリアルでは、次のようにしています。
jQuery(document).ready(function(){
jQuery("#list").jqGrid({
url:'http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc',
datatype: 'xml',
mtype: 'GET',
colNames:['ProductID','title', 'description','price','tax','notes'],
colModel :[
{name:'invid', index:'invid', width:55},
{name:'invdate', index:'invdate', width:90},
{name:'amount', index:'amount', width:80, align:'right'},
{name:'tax', index:'tax', width:80, align:'right'},
{name:'total', index:'total', width:80, align:'right'},
{name:'note', index:'note', width:150, sortable:false} ],
pager: jQuery('#pager'),
rowNum:10,
rowList:[10,20,30],
sortname: 'title',
sortorder: "desc",
viewrecords: true,
imgpath: 'http://127.0.0.1/products/public/themes/basic/images',
caption: 'Product List'
});
});
ただし、データを取得するために URL がハードコーディングされています。チュートリアルには次のものがあります。
jQuery(document).ready(function(){
jQuery("#list").jqGrid({
url:'example.php',
datatype: 'xml',
mtype: 'GET',
colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
colModel :[
{name:'invid', index:'invid', width:55},
{name:'invdate', index:'invdate', width:90},
{name:'amount', index:'amount', width:80, align:'right'},
{name:'tax', index:'tax', width:80, align:'right'},
{name:'total', index:'total', width:80, align:'right'},
{name:'note', index:'note', width:150, sortable:false} ],
pager: jQuery('#pager'),
rowNum:10,
rowList:[10,20,30],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
imgpath: 'themes/basic/images',
caption: 'My first grid'
});
});
明らかに、クエリ文字列のデータは変更され、常に同じ URL が必要になるとは限りません: http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc
また、example.php を使用したチュートリアルでは、適切なデータを取得できるようにクエリ文字列変数が必要ですが、私が見つけた部分は表示されません。では、クエリ文字列を変更するにはどうすればよいですか? アイテムを動的に送信するにはどうすればよいですか? また、ハードコードされた URL のために、ページャー ボタンは次のようなものを送信します。
/test/the right variables のような URL を取得するにはどうすればよいですか? クエリ文字列を変更するにはどうすればよいですか?
助けてくれてありがとう。あまり明白ではないことを願っています。setGridParam({url:newvalue})を見つけましたが、使い方がわかりませんでした。
これがドキュメントです。チュートリアルは最初の部分の上部にあります。
編集:以下をありがとう。example.php を使用したチュートリアルで setGridParam を使用する方法を確認しようとしています。彼らは単にexample.phpを持っているだけで、htmlページからexample.phpページへのクエリ文字列変数をどのように取得したかわかりません。setGridParam はこれを達成するための正しい方法かもしれませんが、例のどこにもないため、最初のクエリ文字列変数をどのように渡したのかわかりません。
私はこれを行うことができることを知っています:
function gridSearch()
{
$("#list").setGridParam(
{
url:"http://127.0.0.1/products/index.php/mystuff/test/1/5/productname/desc",
page:1
}
).trigger("reloadGrid");//Reload grid trigger
return false
}
<input id="sData" class="EditButton" type="submit" value="Search" onClick="return gridSearch()"/>
それはグリッドをリロードします(私はそれをテストしました;それは動作します)が、そもそもチュートリアルでどのようにアイテムを送信したのですか? ボタンをリロードせずに、最初にロードする変数を渡すだけの場合はどうすればよいですか?