Php yii2:jquery如果gridview列包含特定值而不是“更改颜色”

Php yii2:jquery如果gridview列包含特定值而不是“更改颜色”,php,jquery,gridview,yii2,Php,Jquery,Gridview,Yii2,假设我的网格视图中有一个列是交付的,它包含的值数组就是一个例子 (1,1,0),(1,1,1),(0,0,0)这是三种组合。我已将单元格的id设置为“已送达” 现在我如何根据列中的值更改行的颜色,例如红色、蓝色或黄色 例如,如果是(1,1,1),则行颜色为绿色;如果是(1,1,0),则行颜色为黄色,否则为红色 我不知道从哪里开始,怎么开始。我不能在这里使用==因为它可以包含3个以上的值。需要使用一些运算符,如contains 我正在尝试使用一个简单的代码,如 <?php $sc

假设我的网格视图中有一个列是交付的,它包含的值数组就是一个例子

(1,1,0),(1,1,1),(0,0,0)这是三种组合。我已将单元格的id设置为“已送达”

现在我如何根据列中的值更改行的颜色,例如红色、蓝色或黄色

例如,如果是(1,1,1),则行颜色为绿色;如果是(1,1,0),则行颜色为黄色,否则为红色

我不知道从哪里开始,怎么开始。我不能在这里使用==因为它可以包含3个以上的值。需要使用一些运算符,如contains

我正在尝试使用一个简单的代码,如

<?php      
$script = <<<EOD
alert ($('#delivered').val());

EOD;
$this->registerJs($script);        
?>

因此,该列是一对多交付的,并且是从另一个模型中提取的。

您可以简单地执行以下操作:

'attribute'=>'is_delivered',
'format'=>'raw',
'value'=>function($row){
      $values=[
      '(1,1,0)'=>'red',
      '(1,1,1)'=>'green',
      '(1,0,1)'=>'blue',
       //other values with its color
      ];
      return Html::tag('span', $row->is_delivered, ['style'=>'background-color:'.$values[$row->is_delivered]]);
}
['style'=>'background-color:'.isset($values[$row->is_delivered]) ? $values[$row->is_delivered] : 'white']
通过上面的代码,我们保存所有可能的值,并为每个值指定一种颜色。然后,我们在
span
标记中显示该值,并在
$values
数组中指定背景色。另外,正如您所看到的,不需要使用
java脚本
,也不需要使用任何
=
if
语句

您可以改进代码,如下所示:

'attribute'=>'is_delivered',
'format'=>'raw',
'value'=>function($row){
      $values=[
      '(1,1,0)'=>'red',
      '(1,1,1)'=>'green',
      '(1,0,1)'=>'blue',
       //other values with its color
      ];
      return Html::tag('span', $row->is_delivered, ['style'=>'background-color:'.$values[$row->is_delivered]]);
}
['style'=>'background-color:'.isset($values[$row->is_delivered]) ? $values[$row->is_delivered] : 'white']

因此,如果该值不存在于
$values
数组中,它将以
白色
背景显示该值。请注意,我设置了
背景色
,您必须将其改为
颜色

你好,谢谢您的建议,但有一个小问题,因为组合可能是2位或4位数字,例如(1,1,1,1),(1,0,1,1),(0,0,0)类似。在这种情况下它会工作吗?嗨,Ali,
列不是表的直接属性。我已经更新了问题。您已经为值建议了一个函数,我已经在使用一个函数来提取值。如何将两者结合起来。@Pawan嗨,亲爱的Pawan,是的,你可以在你的功能中这样做。只要理解我在回答中写下的想法,你就可以完成它。嗨,阿里,谢谢,我想我可以做到,只是一个小小的提示,告诉你我如何完成背景色,不仅是数字,而且是整个单元格或整行的背景色,如果可能的话?