PHP を使用してフォーム データを .CSV ファイルに送信する Web ベースの印刷ログを作成しました。すべてが正しく機能しているようです。ただし、(まだ) 解決できない小さなバグが 1 つ見つかりました。
.CSV ファイルに送信される印刷ログには 7 つのエントリがあります。これらのエントリのうちの 2 つは、毎日更新される 2 つの異なる .DAT ファイルから入力されるドロップダウン リストです。
問題:
フォーム データを正常に送信し、.CSV ファイルを開くと、ドロップ ダウン リストを使用する 2 つのエンティティが、残りのデータとは異なる形式になっていることに気付きました。
次のスクリーン ショットを見れば、私の言いたいことが理解できます: 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');
}
}
?>