Функция setSelect jqGrid с параметризованным запросом - PullRequest
6 голосов
/ 09 ноября 2011

Я использую 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 Ответ

4 голосов
/ 09 ноября 2011

Если я правильно понимаю ваш вопрос, вы используете editoptions с dataUrl.Вам нужен URL с дополнительным параметром tempid, значение которого должно быть строкой текущей выбранной строки.

Исходя из синтаксиса вашего вопроса, я предполагаю, что вы используете какой-то коммерческий продукт jqGrid для PHP из trirand.net .В этом случае вы должны использовать тег [jqgrid-php].jqGrid - это чистый JavaScript-продукт с открытым исходным кодом.Поэтому я отвечаю, как вы можете добавить dataUrl параметр в JavaScript.

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');
            }
        }
    }
});

Если параметр data jQuery.ajax содержит метод вместо свойства, метод будет вызываться каждый раз при соответствующем вызове jQuery.ajax,Я использовал тот же трюк в ответе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...