【发布时间】:2015-01-19 15:11:55
【问题描述】:
我需要使用 php 从CSV 文件获取数据到 HTML 表。我已经通过过滤做到了,这就像一个魅力。现在我尝试添加它,如果 $filter 不存在,但由于某种原因它把它放在桌子外面。
我获取$filter的代码:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$filter = $_POST["search"];
}
所以如果没有POST 请求,就不会有任何名为$filter 的变量。
这是我将 csv 数据导入 HTML 表格的代码:
if (($HandleAnalog = fopen("csv/Analog/ADC_DAC.csv", "r")) !== FALSE) {
echo "<table id='ADC_DAC' style='width:100%; border: 1px solid black;'>";
while (($data = fgetcsv($HandleAnalog, 1000, ";")) !== FALSE) {
$num = count($data);
$row++;
if(strpos($data[4],$filter) !== false || strpos($data[2],$filter) !== false ||strpos($data[5],$filter) !== false){
echo "<tr style='border: 1px solid black;'>";
for ($c=0; $c < $num; $c++) {
if ($row == 0) {
echo "<th style='border: 1px solid black;'>";
$dat = str_replace(',', '.', $data[$c]);
echo $dat;
echo "</th>";
$row++;
}
echo "<td style='border: 1px solid black;'>";
$dat = str_replace(',', '.', $data[$c]);
echo $dat;
echo "</td>";
}
echo "</tr>";
}else if ($filter == null) {
echo "<tr style='border: 1px solid black;'>";
for ($c=0; $c < $num; $c++) {
if ($row == 0) {
echo "<th style='border: 1px solid black;'>";
$dat = str_replace(',', '.', $data[$c]);
echo $dat;
echo "</th>";
$row++;
}
echo "<td style='border: 1px solid black;'>";
$dat = str_replace(',', '.', $data[$c]);
echo $dat;
echo "</td>";
}
echo "</tr>";
}
}
echo "</table>";
}
fclose($HandleAnalog);
但是由于某种原因,当我不过滤它时它不会显示数据,而我完全一样。
过滤后的样子:
不过滤时的样子:
如果我查看浏览器中的元素,我会发现它在未过滤的值之前关闭了表格。
提前致谢:)
【问题讨论】:
-
我在您的代码中找不到问题。你确定你过滤的时候 $filter 是空的吗?