2016-08-16 44 views
3

我試圖讓我的頁面一起顯示多個不同的進度小部件,形成一個動態更大的進度條。每個小部件都需要點擊才能將用戶帶到相應的舞臺。以下是我迄今爲止嘗試:Yii2 Progress Widget可點擊字段

<?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

options屬性..可以包含標籤的所有html關鍵字..所以你可以使用class,id ...和href太..而且明確地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好像我的答案引導你到正確的解決方案..應該是公平的你評價它.. .. – scaisEdge

0

解決它!

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

'選項'=> [ '的onclick'=> 「window.location.href = '{$ URL}'」],

謝謝大家!