2011-11-09 3 views
6

편집/추가 기능에서 jqGrid를 사용하고 있습니다.이 필드 중 하나에 드롭 다운 목록을 갖고 싶습니다.jqGrid 매개 변수화 된 쿼리로 setSelect 함수

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

가 어떻게 내 쿼리에 매개 변수를 전달할 수 있습니다 :이 같은 setSelect 기능을 사용하는 경우

이 작동? 나는 당신의 질문을 이해 수정할 경우

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

http://www.trirand.com/blog/phpjqgrid/docs/jqGrid/jqGrid.html#sec-method-kr에서 jqgrid php 클래스의'-> setSelect' 메소드에 대한 문서를 찾을 수 없습니다. 요약 좀 더 자세한 정보를 제공 할 수 있습니까? –

+0

http://www.trirand.net/documentation/php/index.htm -> 섹션 튜토리얼 -> 드롭 다운 – Grace

답변

4

을 :하면서 위의

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

아무도 일하지

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

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

: 나는이 시도 dataUrl과 함께 editoptions을 사용합니다. 추가 매개 변수가 tempid 인 URL을 갖고 자하는 값은 현재 선택된 행의 rowid 여야합니다.

귀하의 질문 구문에서 나는 PHP 제품에 대한 상업용 jqGrid를 trirand.net에서 사용한다고 가정합니다. 이 경우 tag [jqgrid-php]를 사용해야합니다. jqGrid는 순수한 JavaScript 오픈 소스 제품입니다. 그래서 나는 dataUrl 파라미터를 자바 스크립트에 어떻게 추가 할 수 있는지 대답합니다.

있는 jqGrid는 dataUrl를 사용하는 호출의jQuery.ajax 옵션을 수정 로 사용할 수 있습니다 ajaxSelectOptions 옵션이 있습니다. 당신은 jQuery.ajaxdata 매개 변수는 방법은 해당 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'); 
      } 
     } 
    } 
}); 

을 다음을 수행 할 수 있습니다. 나는 the answer에서 같은 트릭을 사용했다.

+0

tempid는 마스터 그리드의 기본 키입니다. 세부 그리드를 보내고 있습니다. 세부 그리드의 tempid 값. 내 문제는 내가 매개 변수를 가진 쿼리를 전달하는 setSelect 함수를 사용하는 방법을 모르겠다. – Grace

+0

@Grace : 아무런 차이가 없다. 세부 그리드에서 단지 myMasterGrid.jqGrid ('getGridParam', 'selrow');를 사용할 수 있습니다. 또는 마스터 그리드의 현재 선택된 행의 id를 변수 (예 :'masterRowId')에 저장할 수 있습니다. 이 작업은 마스터 그리드의 onSelectRow 이벤트 내에서 수행 할 수 있습니다. 그런 다음에'tempid : function() {return masterRowId; }' – Oleg

+0

@Grace : 아마도 잘못된 장소에서'ajaxSelectOptions'를 사용했을 것입니다. 나는 당신이 사용하는 다른 jqGrid 옵션들에'ajaxSelectOptions'을 추가해야한다는 것을 좀더 명확하게 보여주기 위해 조금 답을 수정했습니다. – Oleg