Вывод CSV в таблицу с использованием PHP создает дополнительную голову - PullRequest
0 голосов
/ 31 августа 2018

У меня есть эта простая функция для вывода таблицы из файла CSV. Проблема в том, что он создает дополнительную теаду.

function MSC_Show_Tables($attr) {

    $rows = 1;

    if (($handle = fopen($attr['csvfile'], "r")) !== FALSE) {
        $priceTable = '<table class="msc-prices-tables">';
        while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $numRows = count($row);
            if($rows == 1) {
                $priceTable .= '<thead class="msc-table-head"><tr><th>'.$row[0].'</th><th>'.$row[1].'</th><th>'.$row[2].'</th></tr><thead><tbody>';
            } else {
                $priceTable .= '<tr><td>'.$row[0].'</td><td>'.$row[1].'</td><td>'.$row[2].'</td></tr>';
            }
            $rows++;
        }
        return $priceTable.'</tbody></table>';
        fclose($handle);
    }
}

Это HTML, который он производит

&lt;table class="msc-prices-tables"&gt;

&lt;thead class="msc-table-head"&gt;...&lt;/thead&gt;

&lt;thead&gt;&lt;/thead&gt;

&lt;tbody&gt;...&lt;/tbody&gt;

&lt;/table&gt;

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

В этой строке 2 <thead> и нет </thead>, поэтому ваш браузер, вероятно, исправляет эту ошибку и добавляет дополнительный thead

$priceTable .= '<thead class="msc-table-head"><tr><th>'.$row[0]
            .'</th><th>'.$row[1].'</th><th>'.$row[2]
            .'</th></tr><thead><tbody>';
//----------------------^^^^^^^

Так что измените на

$priceTable .= '<thead class="msc-table-head"><tr><th>'.$row[0]
            .'</th><th>'.$row[1].'</th><th>'.$row[2]
            .'</th></tr></thead><tbody>';
// ---------------------^^^^^^^
0 голосов
/ 31 августа 2018

В вашем закрытии <thead> отсутствует начальная косая черта. Это должно быть </thead>

...