2011-11-09 11 views
6

編集/追加機能で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 = ""; 
+0

http://www.trirand.com/blog/phpjqgrid/docs/jqGrid/jqGrid.html#sec-method-html/jqgrid.htmlのjqgrid phpクラスの ' - > setSelect'メソッドに関するドキュメントが見つかりません。あなたはいくつかの詳細情報を提供することができますか? –

+0

http://www.trirand.net/documentation/php/index.htm - >セクションのチュートリアル - >ドロップダウン – Grace

答えて

4

を私はあなたの質問を理解して修正した場合editoptionsdataUrlを使用します。追加のパラメータtempidを持つURLが必要です。この値は、現在選択されている行のROWIDにする必要があります。

あなたの質問の文法から、PHP製品用の市販のjqGridをtrirand.netから使用していると思います。この場合、tag [jqgrid-php]を使うべきです。 jqGridは、純粋なJavaScriptのオープンソース製品です。だから、dataUrlパラメータをJavaScriptに追加する方法をお答えします。

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

関連する問題