如果在前一行exit_status
中完成,如何检查,并根据具体情况,检查是否已完成或待处理显示更新更新按钮,或者将其隐藏在CodeIgniter中。我想不出实现这个的逻辑,这是我的视图代码:
<?php } else if($USER->permissions[0] == 'all' && $row['responsibility'] == $USER->email && $row['completion_status'] == 'Pending'&& $row['sequence']-1 == 'completed') { ?>
<td style="width:10%">
<input type="hidden" name="grievance_id" value="<?=$row['id']?>">
<input type="hidden" name="action" value="update">
<input type="submit" <?=($row[ 'checklist_id']=="Denied" ||$row[ 'checklist_id']=="Approved" )? "disabled='true'": "";?>name="sumit_button" value="Update" class="btn" style="float:left;background:#d8d8d8;color:#000;box-shadow:0px 0px 1x rgba(0,0,0,0.2)!important;">
</td>
<?php }
如果前一行exit_status完成,则只打开更新按钮,否则隐藏它。类似于.. if($ row ['sequence'] - 1)=='completed'{显示按钮else hide}。附加视图图像
答案 0 :(得分:1)
如果我理解正确 - 你想要访问foreach中的前一个“Row”值
为了做到这一点你可以尝试这样的事情
我假设您的密钥是数字的,并且以0开头
if(count($rows) > 0)
{
foreach($rows as $key => $row)
{
$prevRow = (isset($rows[($key-1)])) ? $rows[($key-1)] : false;
if($USER->permissions[0] == 'all' && $row['responsibility'] == $USER->email && $row['completion_status'] == 'Pending'&& ($prevRow && $prevRow['sequence'] == 'completed'))
{
//your code goes here
}
}
}
更好的解决方案是实现 ArrayIterator http://php.net/manual/de/class.arrayiterator.php