jqGrid setSelect函数与参数化查询

Gra*_*ace 6 php parameters jquery jqgrid

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

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

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

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

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 = "";
Run Code Online (Sandbox Code Playgroud)

Ole*_*leg 4

如果我正确理解你的问题,你可以使用editoptionsdataUrl. 您希望 URL 具有附加参数,tempid该参数的值应该是当前所选行的 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');
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

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