const categories = [
{ id: 1, name: 'name 1', parent: null },
{ id: 2, name: 'name 2', parent: 1 },
{ id: 3, name: 'name 3', parent: 6 },
{ id: 4, name: 'name 4', parent: 5 },
{ id: 5, name: 'name 5', parent: 6 },
{ id: 6, name: 'name 6', parent: null },
{ id: 7, name: 'name 7', parent: null }
];
function buildTree(items, parent) {
parent = parent || null;
let result = [];
items.forEach((item) => {
if (item.parent === parent) {
result.push(item);
item.children = buildTree(items, item.id);
if (!item.children.length) {
delete item.children;
}
}
});
return result;
}
// todo: не обходить уже добавленные
console.log(buildTree(categories));
$data = ['success' => false; 'message' => 'Тест', 'phone' => $_POST['phone']];
header('Content-Type: application/json');
echo json_encode($data);
$.ajax({
type: 'post',
url: '/script.php'. // без http:// и домена
dataType: 'json',
data: {id: 5555, phone: 4444},
success: function(data) {
if (!data.success) {
$("#error").html(data.message);
console.log(data.phone); // 4444
}
}
});
$('#field').datepicker({
range: 'period',
numberOfMonths: 2,
beforeShowDay: function (date) {
if (date.getTime() >= startDate.getTime() && date.getTime() <= endDate.getTime()) { // какая-то логика
return [true, 'selected']; // css класс подсвечивающий красным
}
return [true, ''];
},
});