2013-11-22 164 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