2012-01-05 10 views
1

彼のすべて、パスドロップダウン選択された値(リスト)Ajaxを介したパラメータは

をコントローラにように私は私のコントローラのリストとして選択した値を送信する必要がある、ドロップダウンコンボボックスを持っています。

私はこれを試しました。

ドロップダウン:

<g:select name="clientId" id="clientId" multiple = "yes" size = "4" from="${com.springpeople.steer.partymodel.roles.ClientRole.list()}" class = "filter_combo" optionKey="id" /> 

方法はを変更するに呼び出すために:

$("#clientId").change(function(){ 
var clientId = $("#clientId").val(); // it gives clientId = 1,2,3 
var department = document.getElementById("departmentId"); 
department.options.length=0; 
fillDepartment(clientId,"filter_department","${createLink(controller:'report', action:'fillDepartments')}") 
       } 

fillDepartmentInFilter AJAX呼び出し方法:

function fillDepartment(clientId,department_div_id,fillDepartmentUrl,selectedDepartmentIds){ 
    $.ajax({ 
     url:fillDepartmentUrl, 
     data: ({clientId :clientId,departmentId:selectedDepartmentIds}), 
     dataType: "html", 
     success: function(data) { 
      $("#"+department_div_id).html(""); 
      $("#"+department_div_id).attr("disabled", true); 
      $("#"+department_div_id).attr("color") 
      $("#"+department_div_id).html(data); 
     } 
    }); 
} 

私はのclientId値を取得したいですコントローラ内のリストのように...どのように私はそれを行うことができます私は、パラメータの値を印刷しようとしていたときに...今、この

fillDepartments ::パラメータ= [clientIdを[]のような値に私を与える:[3 、13、9]、アクション:fillDepartments、コントローラー:レポート] fillDepartments ::のClientID = nullを

答えて

0

まず、選択したインデックスの全てを取得し、あなたのAJAXに文字列としてそれらをフェッチします。あなたのサーバー側のスクリプトコードでは以下で「」あなたのように定義スプリッタでそれらを分割:

var cmb = document.getElementById('clientID'); 
var selItems = ""; 
for(i=0;i<cmb.options.length;i+=1){ 
    if(cmb.options[i].selected){ 
    selItems = selItems + cmb.options[i].value + ","; 
    } 
} 
// Remove the last splitter 
selItems = selItems.substr(0,selItems.length-1); 

次にjQueryのAJAXでのごdataパラメータにselItemsを渡します。

希望します。私のコードは正しいと思いますが、私はそれをテストしませんでした。

+0

for(i =; i maaz

+0

を修正しました。 – MahanGM

関連する問題