HTMLでinputされた値をCSVに書き込む方法【PHPでCSVに書き込む】

こんにちは、ハル@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") を使う場合あり
  • セキュリティ対策
    • 不要な入力を保存しない(バリデーション必須)
    • 公開サーバーの csv ファイルは外部から直接アクセスできない場所に保存

記事のまとめ

  • HTMLフォームから入力を受け取り → AjaxでPHPに送信
  • PHPで受け取った値をCSVに保存(fputcsvが便利)
  • 実際の業務で使うときは文字コードや権限設定にも注意

PHPを使うときはインストールを忘れないようにしましょう。

おわりっ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次