【问题标题】:How to hide table row with empty cell with php如何使用php隐藏带有空单元格的表格行
【发布时间】:2019-07-24 15:02:14
【问题描述】:

我有来自开发人员的 htmltopdf 代码,其中有一部分包含一个由“问题”和“答案”组成的表格,因此如果答案为空,我需要隐藏该行。

这是我的代码的一部分:

$pdfHTML = '<table border="1"><tbody>';

        foreach($arAnswer as $items){

            $pdfHTML .= '<tr>';
                $pdfHTML .= '<td>';
                    $pdfHTML .= htmlspecialcharsEx($items['0']['TITLE']);
                $pdfHTML .= '</td>';
                $pdfHTML .= '<td>';
                    foreach($items as $item){
                        if($item['USER_TEXT']){
                            $pdfHTML .= htmlspecialcharsEx($item['USER_TEXT']);
                        }else if( ($answerText = trim($item['ANSWER_TEXT'])) ){
                            $pdfHTML .= htmlspecialcharsEx($answerText);
                        }
                        $pdfHTML .= '<br>';
                    }
                $pdfHTML .= '</td>';
            $pdfHTML .= '</tr>';
        }

        $pdfHTML .= '</tbody></table>';

【问题讨论】:

    标签: php html pdf html-table


    【解决方案1】:

    试试这个。您可以检查答案中的所有项目,然后决定是否添加新行

    $pdfHTML = '<table border="1"><tbody>';
    
    foreach ($arAnswer as $items) {
        $isAnswer = false;
        foreach ($items as $item) {
            if (trim($item['ANSWER_TEXT'])) {
                $isAnswer = true;
                break;
            }
        }
        if ($isAnswer) {
            $pdfHTML .= '<tr>';
            $pdfHTML .= '<td>';
            $pdfHTML .= htmlspecialcharsEx($items['0']['TITLE']);
            $pdfHTML .= '</td>';
            $pdfHTML .= '<td>';
            foreach ($items as $item) {
                if ($item['USER_TEXT']){
                    $pdfHTML .= htmlspecialcharsEx($item['USER_TEXT']);
                }
                if (!empty($item['ANSWER_TEXT'])) {
                    $pdfHTML .= htmlspecialcharsEx($item['ANSWER_TEXT']);
                }
                $pdfHTML .= '<br>';
            }
            $pdfHTML .= '</td>';
            $pdfHTML .= '</tr>';
        }
    
    }
    
    $pdfHTML .= '</tbody></table>';
    

    【讨论】:

    • 伙计,非常感谢你,你是最棒的。它非常适合我!怎样才能同时给USER_TEXT添加相同的条件?
    • @ZhalgasBekpaev 好!投票吧,兄弟!如果要在 ANSWER_TEXT AND USER_TEXT 同时不为空时显示行,可以将if (trim($item['ANSWER_TEXT'])) 更改为if (trim($item['ANSWER_TEXT']) &amp;&amp; trim($item['USER_TEXT']))。如果其中一个不为空 cjange &amp;&amp;||
    【解决方案2】:

    您应该可以添加empty 检查,例如:

    foreach ($arAnswer as $items) {
        $pdfHTML .= '<tr>';
        $pdfHTML .= '<td>';
        $pdfHTML .= htmlspecialcharsEx($items['0']['TITLE']);
        $pdfHTML .= '</td>';
        $pdfHTML .= '<td>';
        foreach ($items as $item) {
            if ($item['USER_TEXT']) {
                $pdfHTML .= htmlspecialcharsEx($item['USER_TEXT']);
            }
            if (!empty($item['ANSWER_TEXT'])) {
                $pdfHTML .= htmlspecialcharsEx($item['ANSWER_TEXT']);
            }
            $pdfHTML .= '<br>';
        }
        $pdfHTML .= '</td>';
        $pdfHTML .= '</tr>';
    }
    
    $pdfHTML .= '</tbody></table>';
    

    【讨论】:

    • 谢谢,但它对我不起作用?我的意思是你为 添加空检查,但我想隐藏表中的行。
    【解决方案3】:

    您可以添加类,使用 jquery 将其隐藏。像下面的例子:

    //PHP :
    $pdfHTML = '';
    
    foreach ($arAnswer as $items) {
        $pdfHTML .= '<tr>';
        $pdfHTML .= '<td>';
        $pdfHTML .= htmlspecialcharsEx($items['0']['TITLE']);
        $pdfHTML .= '</td>';
        $pdfHTML .= '<td>';
        foreach ($items as $item) {
            if ($item['USER_TEXT']) {
                $pdfHTML .= htmlspecialcharsEx($item['USER_TEXT']);
            }
            if (!empty($item['ANSWER_TEXT'])) {
                $pdfHTML .= htmlspecialcharsEx($item['ANSWER_TEXT']);
            }
    //add empty div with class with to hide row
    
            if (empty($item['ANSWER_TEXT'])) {
                $pdfHTML .= '<div class="hide_table_row"></div>';
            }
            $pdfHTML .= '<br>';
        }
        $pdfHTML .= '</td>';
        $pdfHTML .= '</tr>';
    }
    
    $pdfHTML .= '</tbody></table>';
    

    //jquery

    $(document).ready(function(){
    //hide row (parent tr)
      $(".hide_table_row").closest('tr').hide();
    });
    

    【讨论】:

    • 任务“如何使用 php 隐藏带有空单元格的表格行”。决策 - 使用 JQuery。真的吗?
    猜你喜欢
    • 2012-05-20
    • 2011-02-07
    • 2012-08-14
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2019-09-25
    相关资源
    最近更新 更多