0

我正面临一个非常奇怪的问题,我从过去 2 小时开始调试,但找不到解决方案。在解释问题之前,让我展示一下代码

我的控制器功能是

  $this->load->library('datatables');
    $actionLinkBar = $this->load->view("content/updates/dt_files/action_bar", array(), TRUE);
    $this->datatables
            ->select("id, name, status")
            ->where('id', $this->session_data['user_id'])
            ->from("t_user")
            ->add_column("action", $actionLinkBar, 'id, name, status');

    echo $this->datatables->generate();

我的 action_bar 视图中的代码是

    <?php
     $status_rec = '$3';
     var_dump($status_rec); // STRANGE OUTPUT -  string(2) "1" 
     ?>

 <div class="action_bar" data-update-id="<?php echo '$1'; ?>">

    <?php if ($status_rec == '1') { ?> // HENCE COMPARISON ALWAYS FAILS

         <span>Present</span>

    <?php }else { ?>

         <span>Absent</span> 

     <?php } ?>

 </div>

现在解释问题..我正在使用带有 Codeigniter 的数据表。我有一个视图模板action_bar,它将显示在前端的数据列之一中。该视图具有基于statusDB 字段值的 if/else 条件。如果status字段值 = 1 = 存在。否则它是缺席的。但是,尽管$status_rec它的值为“1”,但相比之下它仍然失败。奇怪的是 var_dumping $status_rec,我发现虽然它有适当的值,但长度很奇怪(2),虽然它是单一的 int。我什至尝试修剪等,但仍然没有效果。也许这就是比较失败的原因。真的需要你的帮助:/

PS - 保存此值的 DB 字段是长度为 1 的 int

4

1 回答 1

0

我也有一个类似的问题通过更改库解决了一点:

带有 if 条件的 Datatables.php

194、196440字符串的变化

如何使用:

$if = array('0' => array('if_condition'=>'$3', 'if_condition_eqv'=>'1', 'if_true'=>'<span>Present</span></div>', 'if_false'=>'<span>Absent</span></div>'));
$this->datatables->add_column("action", '<div class="action_bar" data-update-id="$1">', 'id, name, status');

但是你必须改变: ".=" On "=" (字符串497504

应该管用。

如果有人能更正代码,我将不胜感激

PS对不起我的英语

于 2014-05-01T14:28:52.787 回答