2011-03-03 114 views
0

我正在使用PHP爲JQGrid生成JSON。我已經添加另一個屬性的PHP對象,我JSON編碼:將JSON字符串中的附加參數發送到jqGrid

$sql_array = preg_split('/LIMIT/', $sql); 
$pass_sql = $sql_array[0]; 
$response->sql = $pass_sql; 
<~SNIP~> 
echo json_encode($response); 

這解析客戶端上的精細和用JSON填充jqGrid的是這樣的:

{"page":"1","total":28,"records":"685","sql":"SELECT * FROM fires ORDER BY id desc ","rows":[{"id":"3065","cell":["Southern","Lost Fire","National Forests in Mississippi","492","100","0000-00-00",null,null,null,null,null,null,null,null,null,null,null,"3065","2011-03-03 00:00:00"]},{"id":"3064","cell":["Southern","PineTree","East Central Area Dispatch Office","420","80","2011-03-02",null,null,null,null,null,null,null,null,null,null,null,"3064","2011-03-03 00:00:00"]},{"id":"3063","cell":["Southern","LILAC ROAD","Georgia Forestry Commission","100","100","2011-03-01",null,null,null,null,null,null,null,null,null //etc 

我需要將該SQL參數文本從JSON回覆中拉出並將其隱藏在DIV中以備後用。這可能嗎?

+0

這裏可能有一些設計問題......但除此之外,您可以在填充網格的處理程序中執行此操作。 – Orbit 2011-03-03 22:34:35

回答

0

從服務器到jqGrid的發送附加信息的最簡單方法是userdata(見this answer。如果你的JSON數據就會像

{ 
    "page":"1", 
    "total":28, 
    "records":"685", 
    "userdata":"SELECT * FROM fires ORDER BY id desc ", 
    "rows":[ 
     ... 
    ] 
} 

{ 
    "page":"1", 
    "total":28, 
    "records":"685", 
    "userdata": { 
     sql: "SELECT * FROM fires ORDER BY id desc " 
    }, 
    "rows":[ 
     ... 
    ] 
} 

附加信息會保存在jqGrid裏面,你可以使用$("#grid_id").jqGrid('getGridParam','userData')

在的情況下要小心。在JSON數據中,它必須是userdatagetGridParam:'userData'。

+0

很棒!我會給這個鏡頭,並且一旦我開始工作,將其標記爲「已解決」。 – 2011-03-04 14:19:29