1

我创建了一个基于 Web 的打印日志,它使用 PHP 将表单数据发送到 .CSV 文件。一切似乎都正常工作。虽然,我发现了一个我似乎无法解决的小错误(还)。

打印日志中有七个条目提交到 .CSV 文件。其中两个条目是从每天更新的两个不同 .DAT 文件中填充的下拉列表。

问题:

成功提交表单数据并打开 .CSV 文件后,我注意到使用下拉列表的两个实体的格式与其余数据不同。

您可以通过查看以下屏幕截图来了解我的意思:http: //i49.tinypic.com/2n87eko.jpg

我相信问题来自以下代码,该代码提取了“项目编号”和“员工姓名”下拉框数据:

<?php
$file = 'dat_files/Employees.dat';

$handle = @fopen($file, 'r');
if ($handle) {
   while (!feof($handle)) {
       $line = fgets($handle, 4096);
       $item = explode('|', $line);
       echo '<option value="' . $item[0] . '">' . $item[0] . '</option>' . "\n";
   }
   fclose($handle);
}
?>

任何帮助或想法将不胜感激。谢谢你。

下面是用于将表单数据发送到 .CSV 文件的代码。

    <?php

if(isset($_POST["submit"]))
{ 
    $type = $_POST["type"]; 
    $date = $_POST["date"]; 
    $job_number = $_POST["job_number"]; 
    $phase = $_POST["phase"];
    $task = $_POST["task"];
    $number_copies = $_POST["number_copies"];
    $name = $_POST["name"];


    if(empty($type)||empty($date)||empty($job_number)||empty($phase)||empty($task)||empty($number_copies)||empty($name))  
    { 
        header('Location: submit/unsuccessful.htm'); 
        die; 
    } 
    $cvsData = "\"$type\",\"$date\",\"$job_number\",\"$phase\",\"$task\",\"$number_copies\",\"$name\"".PHP_EOL; 
    $fp = fopen("log.csv", "a"); 

    if($fp) 
    { 
        fwrite($fp,$cvsData); // Write information to the file 
        fclose($fp); // Close the file 
        header('Location: submit/successful.htm');

    }
}
?>
4

2 回答 2

0

我在猜测,但我不确定您显示的代码是将数据回显到屏幕截图中显示的表格内的屏幕的代码。如果这是真的,那么所有选项标签都是关于什么的?

如果不是真的,那么我们可能需要查看更多源代码来帮助您。

于 2013-01-23T18:01:35.397 回答
0

当我运行您的代码时,我没有在生成的 CSV 文件中看到任何额外的换行符。也许是因为您的 Excel 格式已关闭?尝试在 Excel 中突出显示下拉列,然后单击鼠标右键。选择“格式化单元格”。然后转到“对齐”选项卡。取消选中“文本控件”部分下的“自动换行”。

于 2013-01-23T18:53:03.063 回答