2013-06-04 53 views
0

我已經使用了一個小部件JMultiSelect,我希望當我按下ajax按鈕(ajax請求)時,我選擇的值將發送到控制器。我希望這個值會被添加到我的請求的'數據'中。Yii:如何將JMultiSelect小部件選定的值發送到控制器

這是我的小工具:

$this->beginWidget('CActiveForm', array(
    'id' => 'Music' 
)); 

$this->widget('ext.multiselect.JMultiSelect', array (
    'id'=>'MusicName', 
    'name'=>'Music', 
    'data' => $music, 
    'options'=> array('header'=>'Select a music file', 'noneSelectedText'=>'Select a music file', 'multiple'=>false), 
)); 

$this->endWidget(); 

我想是這樣的:

echo CHtml::ajaxLink(
     'Test request', 
     array('video/createVideo'), 
     array( 
     'update'=>'#req_res', 
     'data'=> array(
         'musicFile'=>'js:function(){ 
          return document.getElementById("Music").value; 
         }', 
     ),              
     'type' => 'post', 
    ) 
); 

找到了解決方案,但現在我有值,而不是文本:

'musicFile'=>'js:function(){ 
                    return $("#MusicName").multiselect("getChecked").map(function(){ 
                    return this.value;  
                   }).get(); 
                  }', 

回答

0

嘗試做這樣的事情直接在AJAX的數據部分使用Js功能

$this->widget('ext.multiselect.JMultiSelect', array (
              'name'=>'Music', 
              'data' =>array( 
              "urVariableName" = "js: $('#music').val();" 
              ), 
              'options'=> array('header'=>'Select a music file', 'noneSelectedText'=>'Select a music file', 'multiple'=>false), 
            )); 

要獲取控制器u使用POST數據或得到像如圖

$variable=$_POST['urVariableName']; 

如圖

echo CHtml::ajaxButton(
     'Test request', 
     array('video/createVideo'), 
     array( 
     'update'=>'#req_res', 
     'data'=> array(
         'musicFile'=>"js: $('#music').val();" 
         }', 
     ),              
     'type' => 'post', 
    ) 
); 
+0

多選下拉列表已填充。但我不知道如何獲取發送給控制器的值,當我使用u ajax請求發送頁面上的所有數據時。 – userTom

+0

使用POST或GET方法虐待更新我以前的帖子 – Ninad

+0

小部件中的數據將填充字符串(或音樂文件名稱從$音樂)。我希望從該列表中選擇發送。我會更新我的第二個代碼部分 – userTom

0

嘗試使用Ajax的按鈕嘗試使用「選擇」在JMultiSelect屬性作爲顯示爲

$this->widget('ext.multiselect.JMultiSelect', array (
    'name'=>'Music', 
    'data' => $music, 
    'select'=>'js:function(event, ui) { 
              // $("#my_keyword_id").val(ui.item.id); 
              alert($("#music").val()); 
               }', 
    'options'=> array('header'=>'Select a music file', 'noneSelectedText'=>'Select a music file', 'multiple'=>false), 
)); 
相關問題