Есть массив данных, полученный из .ini файла и переведенный в JSON, такого вида:
{"Box":1,"Case":1,"CPU":1,"RAM":1,"PSU":1,"SoundCard":1,"NetCard":1,"Monitor":1,"Name":"Template2"}
$components - массив, возвращенный из файла, имеет вид:
<?php
return [
'Box' => 'Системный блок',
'Case' => 'Корпус',
'CPU' => 'Процессор',
'RAM' => 'Оперативная память',
'MB' => 'Материнская плата',
'Video' => 'Видеокарта',
'SSD' => 'Твердотельный накопитель',
'HDD' => 'Жёсткий диск',
'DVD' => 'Оптический привод',
'PSU' => 'Блок питания',
'SoundCard' => 'Звуковая карта',
'NetCard' => 'Сетевая карта',
'Monitor' => 'Монитор',
'Keyboard' => 'Клавиатура',
'Mouse' => 'Мышь',
'Telephone' => 'Телефон',
'UPS' => 'ИБП',
];
Файл загрузки данных:
<?php
$names = array();
foreach (glob(__DIR__ . "/../templates/*.ini") as $file) {
$array = json_decode(file_get_contents($file), true);
$names[] = $array['Name'];
}
$data = array();
foreach (glob(__DIR__ . "/../templates/*.ini") as $file) {
$array = json_decode(file_get_contents($file), true);
$fileName = basename($file, '.ini');
$data[] = $array;
}
$jsonData = json_encode($data);
Есть select с option'ами:
<div id="templateDiv">
<select name="templates">
<option value="default" selected>Выберите шаблон</option>
<?php foreach ($names as $name):?>
<option value=<?=$name?>><?=$name?></option>
<?php endforeach; ?>
</select>
<hr>
<ul class="checkbox">
<?php foreach ($components as $component => $nameRu):?>
<li><input type="checkbox" name="components[]" value=<?=$component?> id=<?=$component?>> <label for=<?=$component?>><?=$nameRu?></label></li>
<?php endforeach; ?>
</ul>
<hr>
</div>
Соответственно, при создании чекбоксов, value и id им задаются по типу: Box, Case, CPU
<?php foreach ($components as $component => $nameRu):?>
<li><input type="checkbox" name="components[]" value=<?=$component?> id=<?=$component?>> <label for=<?=$component?>><?=$nameRu?></label></li>
<?php endforeach; ?>
Как реализовать включение флажка в чекбоксе, сравнив имя ключа в JSON с именем чекбокса?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Для десериализации и сериализации использую библиотеку JacksonИногда на практике встречаюсь с требованием прописать сеттеры для класса сущности,...
There's a problem: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') (line 1, column 2)