yii2:jquery,如果gridview列包含特定值而不是更改颜色 - php

假设我在网格视图is_delivered中有一列,其中包含例如

(1,1,0),(1,1,1),(0,0,0)共三个组合。我已将单元格的ID设置为“已交付”

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

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

我无法确定从哪里开始以及如何开始。我不能在这里使用==,因为它可以包含3个以上的值。需要使用一些包含之类的运算符。

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

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

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

但这给了我一个没有任何价值的空白警报。

感谢您的任何建议。

更新问题以得出is_delivered列的值

[
             'attribute'=>'is_delivered',             
            'value' => function ($data) {
                $str = '';
                foreach($data->medicineRequests as $request) {
                    $str .= $request->is_delivered.',';
                }
                return $str;

            },

        ],

因此,is_delivered列是一对多的,并且是从另一个模型提取的。

php参考方案

您可以像下面这样简单地做:

'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]]);
}

通过以上代码,我们保留了所有可能的值,并为每个值分配一种颜色。然后,我们在span标记中显示值,并在$values数组中指定背景色。同样,如您所见,无需使用java-script或任何==if语句。

您可以像下面那样改进代码:

['style'=>'background-color:'.isset($values[$row->is_delivered]) ? $values[$row->is_delivered] : 'white']

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

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

PHP数组可以这样做吗? - php

可以说;我有一个$ friends数组,其中有2,000个不同的friendID号+我有一个带有10,000 bulletinID号的$ bulletins数组,该$ bulletins数组还将具有另一个值,该ID的用户ID是发布公告条目的用户现在可以获取所有具有与FriendsID数组中的userID匹配的userID的bulletinID号吗?甚至有可能…

哪个更好的做法?从Jquery响应获取HTML - php

这只是一个问题,以了解人们如何以及如何做到这一点,但是假设用户向列表中添加了一些内容,完成后,它将运行下面的ajax并更新.user-stream-list$.ajax({ url: "user-stream-list.php", success: function(data){ $(".user-stream-list…

PHP标头功能不起作用 - php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…

使用PHP从sqlite3数据库检索表名称 - php

我有此代码的工作版本,如下所示,结果为can be seen here。<?php // Display all sqlite tables $db = new SQLite3('data.db'); $tablesquery = $db->query("SELECT name FROM sqlite_master …