jqGrid setSelect函数与参数化查询

我正在使用jqGrid,在编辑/添加function上我希望在其中一个字段中有一个下拉列表。

如果我使用setSelect函数,这是有效的:

$grid->setSelect("title", "SELECT DISTINCT name,name as TestingName FROM template", true, true, false, array(""=>"All")); 

如何将参数传递给我的查询? 我试过这些:

1- "SELECT DISTINCT name,name as TestingName FROM template where tempid = ?"

2- "SELECT DISTINCT name,name as TestingName FROM template where tempid = $rowid"

3- "SELECT DISTINCT name,name as TestingName FROM template where tempid = ". $rowid "SELECT DISTINCT name,name as TestingName FROM template where tempid = ". $rowid

具有以下function:

 if(isset ($_REQUEST["tempid"])) $rowid = jqGridUtils::Strip($_REQUEST["tempid"]); else $rowid = ""; 

如果我正确理解您的问题,请使用带有dataUrl 。 您希望拥有具有附加参数tempid的URL,该值应该是当前所选行的rowid。

从你的问题的语法,我想你从trirand.net使用一些商业jqGrid for PHP产品。 在这种情况下你应该使用标签[jqgrid-php]。 jqGrid是纯JavaScript开源产品。 所以我回答你如何在JavaScript中添加dataUrl参数。

jqGrid有一个ajaxSelectOptions选项,可用于修改使用dataUrl的调用的jQuery.ajax选项。 你可以做以下

 var myGrid = $("#list"); myGrid.jqGrid({ // all your current parameters of jqGrid and then the following ajaxSelectOptions: { data: { tempid: function () { return myGrid.jqGrid('getGridParam', 'selrow'); } } } }); 

如果jQuery.ajax的data参数包含方法而不是属性,则每次调用相应的jQuery.ajax时都会调用该方法。 我在答案中使用了相同的技巧。