2016-08-16 4 views
3

동적 인 더 큰 진행 막대를 형성하기 위해 내 페이지에 다양한 진행 위젯을 함께 표시하려고합니다. 각 위젯을 클릭하여 해당 단계로 이동해야합니다. 여기에 지금까지 시도한 것입니다 :Yii2 진행 위젯 Clickable Fields

<?php 
    $retVal = ""; 
    $stages = Phases::find()->asArray()->all(); 
    foreach($stages as $stage) 
    { 
     $percent = PrjApprovals::percentageComplete($model->id, $stage['phase']); 
     echo $retVal = '<div style="float:left; padding-top: 20px;">' . 
     Progress::widget 
     ([ 
      'percent' => $percent, 
      'label' => $stage['phase'], 
      'attributes' => 
       function($model) 
       { 
        $url = Url::to(['phases/' . $stage['phase'], 'id' => $model->id]); 
        return ['onclick' => "window.location.href='{$url}'"]; 
       }, 
     ]) . '</div>'; 
    } 
?> 

내가 진행 위젯의 내용을 변경하지만 현재 내용은 클릭 할 수 있도록하지 링크를해야합니다. 링크를 클릭하면 해당 모델 ID ($ model-> id)로 사용자를 보내야합니다.

"속성"이 올바르지 않다는 것을 알고 있습니다. barOptions, options, rowOptions 및 그 밖의 모든 것을 시도했습니다. 아직도 운이 없다.

+0

누적 진행률 표시 줄을 갖고 싶습니까? http://getbootstrap.com/components/#progress-stacked – Bizley

+0

아니요, 필요 없습니다. 내가 원하는 것은 진행 위젯의 각 하나가 GET 요청의 동일한 모델 ID를 사용하여 사용자를 다른 스테이지로 보낼 수 있다는 것입니다. 링크는/Controller/Action + id = $ model-> id와 같아야합니다. 예 : /basic/web/index.php?r=phases%2Finitiation&id=3 – jamesdoe

답변

1

속성 .. 태그의 모든 html 키를 포함 할 수 있습니다 .. 클래스, id ... 및 href도 사용할 수 있고 obviuosly onclick to .. 사용할 수 있지만 배열을 허용합니다 (모델 값 사용) 하지 (내가 생각하는) 익명 함수, 당신은 당신의 모델에 옵션 값 내용 ..

<?php 
$retVal = ""; 
$stages = Phases::find()->asArray()->all(); 
foreach($stages as $stage) 
{ 
    $percent = PrjApprovals::percentageComplete($model->id, $stage['phase']); 
    echo $retVal = '<div style="float:left; padding-top: 20px;">' . 
    Progress::widget 
    ([ 
     'percent' => $percent, 
     'label' => $stage['phase'], 
     'options' => ['href' => 'your_url'], 
    ]) 
} 
?> 

또는 mystage_link 속성 모델이있는 경우

 'options' => ['href' =>$model->mystage_link], 
+0

'ID'를 GET 및 스테이지로 URL에 추가하려면 어떻게해야합니까? 나는 이것을 시도했다 : 'options'=> [ 'href'=> '/ phases /'. $ stage [ 'phase'], 'id'=> $ model-> id], 하지만 주사위는 없습니다. – jamesdoe

+0

모델 ID와 마찬가지로 각 단계를 URL에 동적으로 추가해야합니다. – jamesdoe

+0

@ jamesdoe 잘 내 대답을 적절한 솔루션으로 이끌 것 .. 공정한 당신이 제대로 그것을 평가해야합니다 .. Logged – scaisEdge

0

그것을 해결 사용할 수 있습니다를 형성해야하므로 !

$ url = Url :: to ([ 'phases /'. $ gate, 'id'=> $ model [ 'id']]);

'옵션'=> [ '온 클릭'=> "window.location.href = '{$의 URL}'"],

당신에게 모두 감사합니다!