PHPでCSVからチェックボックスを生成する方法
PHPでCSVファイルを読み込み、チェックボックスの選択肢を自動生成する方法を紹介します。CSVに登録されたデータをそのままフォームへ反映できるため、選択肢の追加や変更をCSVだけで管理できます。アンケートフォームやカテゴリ選択、商品オプション選択などに利用できるサンプルコードです。
コードについて
本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
カテゴリーを選択
選択結果:未選択
コードをコピーして使おう!
<?php
$options = [];
if (file_exists('data.csv')) {
if (($fp = fopen('data.csv', 'r')) !== false) {
while (($row = fgetcsv($fp)) !== false) {
if (!empty($row[0])) {
$options[] = $row[0];
}
}
fclose($fp);
}
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>CSVからチェックボックス生成</title>
<style>
body{
font-family:sans-serif;
margin:20px;
}
.checkbox-wrap{
border:1px solid #e5e7eb;
border-radius:20px;
padding:24px;
}
.checkbox-title{
font-size:28px;
font-weight:700;
margin-bottom:24px;
}
.checkbox-item{
display:block;
margin-bottom:18px;
font-size:18px;
}
.result-box{
margin-top:24px;
padding:20px;
background:#f8fafc;
border:1px solid #e5e7eb;
border-radius:16px;
font-size:20px;
font-weight:700;
}
</style>
</head>
<body>
<div class="checkbox-wrap">
<div class="checkbox-title">
カテゴリーを選択
</div>
<?php foreach ($options as $option): ?>
<label class="checkbox-item">
<input
type="checkbox"
class="category-checkbox"
value="<?= htmlspecialchars($option, ENT_QUOTES, 'UTF-8') ?>">
<?= htmlspecialchars($option, ENT_QUOTES, 'UTF-8') ?>
</label>
<?php endforeach; ?>
<div class="result-box" id="result">
選択結果:未選択
</div>
</div>
<script>
const checkboxes =
document.querySelectorAll('.category-checkbox');
const result =
document.getElementById('result');
checkboxes.forEach(checkbox => {
checkbox.addEventListener('change', () => {
const selected = [...checkboxes]
.filter(cb => cb.checked)
.map(cb => cb.value);
result.textContent =
'選択結果:' +
(selected.length
? selected.join('、')
: '未選択');
});
});
</script>
</body>
</html>
ファイル構成と設置方法
このサンプルで使用するファイル構成です。
下記のファイルを同じフォルダ(同じ階層)へ配置してください。
sample/
├─ index.php
└─ data.csv
data.csv に保存されたデータを読み込み、チェックボックスを自動生成します。CSVの1列目の値がチェックボックスの選択肢として表示されます。
サーバーへ設置する場合は、上記ファイルを同じフォルダ(同じ階層)へアップロードしてください。別フォルダへ配置する場合は、コード内のファイルパス変更が必要になる場合があります。
PHPはサーバー上で実行されるため、PHPファイルをダブルクリックしても動作しません。動作確認はレンタルサーバーへアップロードするか、PHPが利用できるローカル環境で行ってください。
コメント