こんにちは、ハル@haru_elpisです。
HTMLのINPUTからCSVに保存する場合、PHPを使う事になります
目次
HTML & Javascript
<form id="form">
<input type="text" id="name" placeholder="名前を入力">
<input type="button" value="送信" onclick="sendData()">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
function sendData() {
const name = document.getElementById('name').value;
$.ajax({
type: "POST",
url: "save.php",
data: { name: name },
success: function() {
alert("送信しました!");
},
error: function() {
alert("エラーが発生しました");
}
});
}
</script>
PHPでCSVファイルに書き込む
<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
// 保存先のパス(例: 同じフォルダに data.csv を作成)
$filePath = __DIR__ . "/data.csv";
// "a" = 追記モード
$file = fopen($filePath, "a");
// CSV形式で保存(配列を渡すと自動でカンマ区切りにしてくれる)
fputcsv($file, [$name, date("Y-m-d H:i:s")]);
fclose($file);
}
?>
補足ポイント
- 保存モードの違い
"w"
→ 上書き(既存データが消える)"a"
→ 追記(新しい行を追加)
- 文字化け対策
- Windows環境では
mb_convert_encoding($data, "SJIS-win", "UTF-8")
を使う場合あり
- Windows環境では
- セキュリティ対策
- 不要な入力を保存しない(バリデーション必須)
- 公開サーバーの
csv
ファイルは外部から直接アクセスできない場所に保存
記事のまとめ
- HTMLフォームから入力を受け取り → AjaxでPHPに送信
- PHPで受け取った値をCSVに保存(fputcsvが便利)
- 実際の業務で使うときは文字コードや権限設定にも注意
PHPを使うときはインストールを忘れないようにしましょう。
おわりっ