2013-11-22 184 views
0

我有一個用戶設置頁面,用戶可以在其中更改應用程序的設置。用戶可以輸入0和10見截圖之間的數字:http://oi43.tinypic.com/2uerazp.jpgYiiframework範圍滑塊輸入

現在我想用yiiframework的CJuiSliderInput小部件輸入字段轉換成一個範圍滑塊:http://www.yiiframework.com/doc/api/1.1/CJuiSliderInput#maxAttribute-detail

我似乎無法得到代碼工作,這是鑑於當前代碼:

<?php foreach($settings as $i=>$value): ?> 
    <?php $setting=UserSetting::model()->findByPk($value->setting_id); ?> 
    <h4><?php echo CHtml::encode($setting->label); ?></h3> 
    <?php echo CHtml::activeTextField($value,"[$i]value"); ?> 
<?php endforeach; ?> 

我想與

$this->widget('zii.widgets.jui.CJuiSliderInput',array(
    'model'=>$model, 
    'attribute'=>'[$i]value', 
    'maxAttribute'=>'timeMax', 
    // additional javascript options for the slider plugin 
    'options'=>array(
     'range'=>true, 
     'min'=>0, 
     'max'=>10, 
    ), 
)); 
更換activeTextField

我需要填寫什麼值才能使其工作?每個textField輸入來自不同的模型btw。

控制器看起來是這樣的(不知道你是否需要它):

$settingsvalues = UserSettingValue::model()->findAll('client_id=:id', array(
    ':id' => $id,      
));     
if(isset($_POST['UserSettingValue'])){ 
    $valid = true; 
    foreach($settingsvalues as $i=>$value){ 
     if(isset($_POST['UserSettingValue'][$i])) 
      $value->attributes = $_POST['UserSettingValue'][$i]; 
     $value->save(); 
     $valid = $value->validate() && $valid; 
    } 
    if($valid) 
     $value->save(); 
} 
$this->render('settings',array(
    'model' => $model, 
    'settings' => $settingsvalues, 
)); 

非常感謝!

回答

2

我通過把一個javascript函數在滑塊固定的問題。這並不完全像我一開始所預期的那樣,但它會做。滑塊現在更改輸入字段中的值。

 <?Php    
       $this->widget('zii.widgets.jui.CJuiSliderInput',array(
        'name' => $i, 
        'model'=>$value, 
        'attribute'=>"value", 
        'event'=>'change', 
        //'value'=>'$value', 
        'options'=>array(
         'min'=>0, 
         'max'=>10, 
         'animate' => true, 
         'slide'=>'js:function(event,ui){$("#UserSettingValue_'.$i.'_value").val(ui.value);}', 
       ), 
)); ?>    
1

這有點大,可以作爲評論。但是,請嘗試以下

$this->widget('zii.widgets.jui.CJuiSliderInput',array(
    'name'=>'$setting->label', 
    'attribute'=>'[$i]value', 
    'value'=>$value, 
    'options'=>array(
     'min'=>0, 
     'max'=>10, 
), 
)); 

也請試試這個

$this->widget('zii.widgets.jui.CJuiSliderInput',array(
    'name'=>'$setting->label', 
    'attribute'=>'[$i]value', 
    'value'=>$value, 
    'options'=>array(
     'min'=>0, 
     'max'=>10, 
), 
'htmlOptions'=>array(
    'style'=>'height:20px;', 
), 
)); 
+0

嘿喬恩,我收到以下錯誤,當我嘗試代碼: 用htmlspecialchars()預計參數1爲字符串,給定對象 我認爲某件事情是錯誤的「價值」 – Shark

+0

@YorkKeijzer我已經添加了另一個片段來嘗試 如果它仍然引發問題,請嘗試將此行更改爲此值爲'//'value'=> $ value,',也嘗試散列屬性值。但是一個人測試過,另一個沒有,然後都是哈希。 –

+0

謝謝,我一直很忙。我現在有可視化部分工作:http://oi39.tinypic.com/2j3h4si.jpg用下面的代碼:$ this-> widget('zii.widgets.jui.CJuiSliderInput',array( 'name'=> $ i, 'model'=> $ value, 'attribute'=>「value」, //'value'=>'$ value', 'options'=> array( 'min'=> 0 。, 「最大」 => 10, ), – Shark