weixin_58648225 2021-12-27 18:34 采纳率: 89.2%
浏览 49
已结题

请教一个PHP CSV导出的语法问题

想规范一下代码的写法, 想请教一下如果不封装到$s_table的话,该如何去做,谢谢~
目前的写法是这样的,部分代码如下

if(isset($list) && count($list) > 0){
    $s_table = '';
    $s_table .= '<table class="table">
                    <thead>
                    <tr>';
    $s_table .= '<th>クラスID</th>
                    <th>作成日</th>
                    <th>営業担当</th>
                    <th>クライアント名</th>
                    <th>研修名称</th>
                    <th>研修名称(ローマ字)</th>
                    <th>研修形態</th>
                    <th>デリバリー</th>
                    <th>研修言語</th>
                    <th>研修カテゴリ</th>
                    <th>研修人数</th>
                    <th>授業単価</th>
                    <th>請求単位</th>
                    </tr>
                    </thead>
                    <tbody>';
    foreach ($list as $info){
        $s_table .= '<tr>';
        $s_table .= '<td><a href="'.get_url_top().'/app/conf?id='.$info->id.'">'.$info->id.'</a></td>';
        $s_table .= '<td>'.$info->date.'</td>';
        $s_table .= '<td>'.$info->staff_name.'</td>';
        $s_table .= '<td><a href="'.get_url_top().'/client/conf?id='.$info->client_id.'">'.$info->client_name.'</a></td>';
        $s_table .= '<td><a href="'.get_url_top().'/app/conf?id='.$info->id.'">'.$info->name.'</a></td>';
        $s_table .= '<td><a href="'.get_url_top().'/app/conf?id='.$info->id.'">'.$info->name_romaji.'</a></td>';
        $s_table .= '<td>' . MasterCode::get_one_by_type_code(CODE_TYPE_LESSON_FORM, $info->form)->name . '</td>';
        $s_table .= '<td>'.$info->type_str.'</td>';
        $s_table .= '<td>'.$info->lesson_language.'</td>';
        $s_table .= '<td>'.$info->lesson_category.'</td>';
        $s_table .= '<td>'.$info->number_of_people.'</td>';
        $s_table .= '<td>'.$info->lesson_unit_price.'</td>';
        $s_table .= '<td>'.$info->bill_type_str.'</td>';
        $s_table .= '<td>';
        $s_table .= '</tr>';

    }
    $s_table .= '</tbody></table>';
}else if(isset($list) && count($list) <= 0){
    $s_table = '';
}

csv导出部分:

              <form class="mt20" method="post" action="">
                <input type="hidden" name="data" value="<?php echo htmlspecialchars($s_table, ENT_QUOTES); ?>">
                <input type="hidden" name="action" value="csv_out">
                <input class="btn btn-primary" type="submit" value="CSVで保存">
            </form>

如果将封装规范成HTML的话

 <table class="table">
                <thead>
                    <tr>
                        <th>クラスID</th>
                        <th>作成日</th>
                        <th>営業担当</th>
                        <th>クライアント名</th>
                        <th>研修名称</th>
                        <th>研修名称(ローマ字)</th>
                        <th>研修形態</th>
                        <th>デリバリー</th>
                        <th>研修言語</th>
                        <th>研修カテゴリ</th>
                        <th>研修人数</th>
                        <th>授業単価</th>
                        <th>請求単位</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($list as $info) : ?>
                        <tr>
                            <td><a href="<?php echo get_url_top(); ?>/app/conf?id=<?php echo $info->id; ?>"><?php echo $info->id; ?></a></td>
                            <td><?php echo $info->date; ?></td>
                            <td><?php echo $info->staff_name; ?></td>
                            <td><a href="<?php echo get_url_top(); ?>/client/conf?id=<?php echo $info->client_id; ?>"><?php echo $info->client_name; ?></a></td>
                            <td><a href="<?php echo get_url_top(); ?>/app/conf?id=<?php echo $info->id; ?>"><?php echo $info->name; ?></a></td>
                            <td><a href="<?php echo get_url_top(); ?>/app/conf?id=<?php echo $info->id; ?>"><?php echo $info->name_romaji; ?></a></td>
                            <td><?php echo MasterCode::get_one_by_type_code(CODE_TYPE_LESSON_FORM, $info->form)->name; ?></td>
                            <td><?php echo $info->type_str; ?></td>
                            <td><?php echo $info->lesson_language; ?></td>
                            <td><?php echo $info->lesson_category; ?></td>
                            <td><?php echo $info->number_of_people; ?></td>
                            <td><?php echo $info->lesson_unit_price; ?></td>
                            <td><?php echo $info->bill_type_str; ?></td>
                            <td>
                        </tr>
                    <?php endforeach; ?>
               </tbody>
            </table>
            <?php elseif (isset($list) && count($list) <= 0) : ?>
                <div class="alert alert-warning mt20">該当するデータがありません</div>
            <?php endif; ?>

该如何修改此处或是有其他的办法
<input value="<?php echo htmlspecialchars($s_table, ENT_QUOTES); ?>" name="data" type="hidden" />

感谢解答与指导

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-12-28 10:37
    关注

    将table放到一个容器中,然后获取容器的html赋值给表单也一样的,要不php中字符串连接组成html比较麻烦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月27日

悬赏问题

  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan