2013-11-22 5 views
0

사용자가 응용 프로그램의 설정을 변경할 수있는 사용자 설정 페이지가 있습니다. 사용자 입력 할 수 0 및 10 페이지의 스크린 샷 사이의 숫자 : http://www.yiiframework.com/doc/api/1.1/CJuiSliderInput#maxAttribute-detailYiiframework 범위 슬라이더 입력

내가 얻을 수없는 것 : http://oi43.tinypic.com/2uerazp.jpg

지금 나는 yiiframework의 CJuiSliderInput 위젯을 사용하여 범위 슬라이더에 입력 필드를 변환하고 싶습니다

<?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, 
    ), 
)); 
,691로 activeTextField을 대체하려는 : 코드 작업이 뷰에서 현재 코드

위젯을 작동 시키려면 어떤 값을 입력해야합니까? 각 textField 입력은 다른 모델에서 가져온 것입니다.

$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

내가 슬라이더에 자바 스크립트 함수를 바꾸어 문제를 해결 시도하십시오. 그것은 처음에는 의도했던대로 정확하지 않지만, 그렇게 할 것입니다. 이제 슬라이더가 입력 필드의 값을 변경합니다.

 <?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, '모델'=> $ 값 '속성이'=> "값" // '값'=> '$ 값' '옵션'=> 어레이 ( '분'=> 0 , 'max'=> 10, ), – Shark