我需要使用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);
但由于某些原因,当我不过滤它时它不会显示数据,而我的确完全相同。
我过滤后的样子:
当我不过滤时的外观:
如果我查看浏览器中的元素,我会看到它在非过滤值之前关闭了表格。
提前致谢:)
答案 0 :(得分:0)
所以:
$filter = null;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$filter = $_POST["search"];
}
echo "<table id='ADC_DAC' style='width:100%; border: 1px solid black;'>";
while (($data = fgetcsv($HandleAnalog, 1000, ";")) !== FALSE) {
$num = count($data);
$row++;
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>";
}else 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>";
}
}
echo "</table>";
}
fclose($HandleAnalog);