jqGrid set使用参数化查询选择函数

时间:2011-11-09 10:48:51

标签: php jquery parameters jqgrid

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

如果我使用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

以上没有一项工作有:

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

1 个答案:

答案 0 :(得分:4)

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

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

jqGrid具有ajaxSelectOptions选项,可用于修改使用jQuery.ajax的呼叫的dataUrl选项。您可以执行以下操作

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.ajaxdata参数包含方法而不是属性,则每次调用相应的jQuery.ajax时都会调用该方法。我在the answer中使用了相同的技巧。