php
  • css
  • 2015-04-17 33 views -1 likes 
    -1

    我一直在尝试改变值的文本颜色,取决于值是否为Approved,Pending或Rejected。如何更改动态生成值的文本颜色? - PHP

    所以如果它的批准,我希望文本颜色为绿色。 红色表示拒绝,黄色表示未决。

    $output = ""; 
    $OrderStatus = array('Pending','Approved','Rejected'); 
    /*$Approved = 'Approved'; 
    $Reject = 'Rejected'; 
    $Pending = 'Pending';*/ 
    $statusValue = array(); 
    $color = "#000000"; 
    
    if ($orderValue['status'] == 0) { 
        $statusValue[] = $OrderStatus[0]; 
        $color = "#00FF00"; 
    } 
    elseif ($orderValue['status'] == 1) { 
        $statusValue[] = $OrderStatus[1]; 
        $color = "#FF9900"; 
    } 
    elseif ($orderValue['status'] == 2) { 
        $statusValue[] = $OrderStatus[2]; 
        $color = "#FF0000"; 
    } 
    
    
    
    /*if (in_array(0, $orderValue)) { 
        $statusValue[] = $OrderStatus[0]; 
        $color = "#00FF00"; 
    } 
    elseif (in_array(1, $orderValue)) { 
        $statusValue[] = $OrderStatus[1]; 
        $color = "#FF9900"; 
    } 
    elseif (in_array(2, $orderValue)) { 
        $statusValue[] = $OrderStatus[2]; 
        $color = "#FF0000"; 
    }*/ 
    

    并在表中显示的代码:

    $output .= ' 
        <tr> 
         <td>' .'<input type="checkbox" name="orderData[]" value="'.$orderValue['order_Id'].'" />' . '</td> 
         <td>' .$orderValue['order_Id'] . '</td> 
         <td>' .$orderValue['firstname'] . '</td> 
         <td>' .$orderValue['lastname'] . '</td> 
         <td>' .$orderValue['full_address'] . '</td> 
         <td>' .$orderValue['postcode'] . '</td> 
         <td>' .$orderValue['tel_no'] . '</td> 
         <td>' .$orderValue['mobile_no'] . '</td> 
         <td>' .$newDate . '</td> 
         <td>' .$orderValue['itemName'] . '</td> 
         <td>' .$orderValue['quantity'] . '</td> 
         <td> <span style=\"color: '.$color.';\">' .$statusValue['0'] . '</td>'.'</span> 
    
        </tr>'; 
    
        echo $output; 
    
    +0

    您的标记看起来不对。 ''。$ statusValue ['0']。 ''。''。 span标签正在发生什么? – Drumbeg

    +0

    您应该使用CSS类来定义每个状态的样式(已批准,待定或已拒绝)。为每个相关元素分配适当的类。 – Ninjakannon

    +0

    我尝试过使用CSS类,但无济于事,它根本不起作用。 –

    回答

    2

    你'不使用双引号($output .= " ... ")插入你的变量,所以$color变量被视为文本(字面上字符串“$颜色”)。此外,您正在使用字符串数字来解引用$statusValue阵列;您需要使用不带引号的整数(整个范围内为$statusValue[0],而不是$statusValue['0'])。

    $OrderStatus = array('Pending','Approved','Rejected'); 
    /*$Approved = 'Approved'; 
    $Reject = 'Rejected'; 
    $Pending = 'Pending';*/ 
    $statusValue = array(); 
    $color = "#000000"; 
    if (in_array(0, $orderValue)) { 
        $statusValue[] = $OrderStatus[0]; 
        $color = "#00FF00"; 
    } 
    elseif (in_array(1, $orderValue)) { 
        $statusValue[] = $OrderStatus[1]; 
        $color = "#FF9900"; 
    } 
    elseif (in_array(2, $orderValue)) { 
        $statusValue[] = $OrderStatus[2]; 
        $color = "#FF0000"; 
    } 
    
    
    $output .= ' 
        <tr> 
        <td>' .'<input type="checkbox" name="orderData[]" value="'.$orderValue['order_Id'].'" />' . '</td> 
        <td>' .$orderValue['order_Id'] . '</td> 
        <td>' .$orderValue['firstname'] . '</td> 
        <td>' .$orderValue['lastname'] . '</td> 
        <td>' .$orderValue['full_address'] . '</td> 
        <td>' .$orderValue['postcode'] . '</td> 
        <td>' .$orderValue['tel_no'] . '</td> 
        <td>' .$orderValue['mobile_no'] . '</td> 
        <td>' .$newDate . '</td> 
        <td>' .$orderValue['itemName'] . '</td> 
        <td>' .$orderValue['quantity'] . '</td> 
        <td> <span style=\"color: '.$color.';\">' .$statusValue[0] . '</span>'.'</td> 
    
        </tr>'; 
    
        echo $output; 
    

    我不知道什么样的$orderValue值,但我相信你会希望被存储的值作为整数,不是字符串,以及。您可能希望将订单状态值存储为$orderValue['status'],并使用类似于此的代码:

    if ($orderValue['status'] == 0) { 
        $statusValue[] = $OrderStatus[0]; 
        $color = "#00FF00"; 
    } 
    elseif ($orderValue['status'] == 1) { 
        $statusValue[] = $OrderStatus[1]; 
        $color = "#FF9900"; 
    } 
    elseif ($orderValue['status'] == 2) { 
        $statusValue[] = $OrderStatus[2]; 
        $color = "#FF0000"; 
    } 
    
    +0

    我在代码中进行了更改,但颜色未应用。它只是告诉我$ color变量的值。 –

    +0

    @YacubAli你的意思是什么? –

    +0

    表中值的文本颜色已更改。 $ statusValue [0]变量中的值保持不变。 –

    0

    似乎是一个破碎的HTML这里,

    <td span style=\"color: $color\">' .$statusValue['0'] . '</td>'.'</span> 
    

    尝试将其更改为,

    <td> <span style=\"color: $color\">' .$statusValue['0'] . '</span></td>' 
    
    +0

    它似乎也没有工作。 –

    +0

    你可以通过萤火虫检查吗? –

    +0

    是的,HTML被破坏了,不,那不是什么原因造成的问题......如果你看看生成的源代码,我几乎可以保证你会看到,字面意思是'。 ..' – CD001

    相关问题