Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.12.2021, 15:52
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 562

Составить массив
Имею список категорий
<input onclick="SelectCtype('1','to1in');" type="checkbox" name="ctype-check[]" class="form-check-input" value="1" id="1">
<div id="to1in" style="display: none;">
<input onclick="SelectCtype('2','to2in');" type="checkbox" name="ctype-check[]" class="form-check-input" value="1" id="2">
<div id="to2in" style="display: none;">

Кликая на чекбокс отправляю запрос
function SelectCtype(id,div_id) {

    inp = document.getElementById(id);
    div = document.getElementById(div_id);
    if (inp.checked){
        div.style.display = "block";   
    }else{   
        div.style.display = "none";
    }
    
    if (inp.checked){
    
        $.ajax({
            type: 'POST',
            url: '',
            dataType:'json',
            data: {
                'ctype_id': id.replace(/[^0-9]/g,"")
            },
            success: function (data) {                            
                $(div).html(data);                
            }
        });
    }
    }

В результате получаю список подкатегорий в таком же виде,как и категории(список чекбоксов),которые выводятся под категорией. Выбираю нужные и отправляю на сохранение. Мне нужно оправить массив в каком то таком виде:
[{id категории :['name'=>имя поля,'name' =>имя поля]},{id категории :['name'=>имя поля,'name' =>имя поля]}]

Все данные присутствуют в атрибутах инпутов.
Ответить с цитированием
  #2 (permalink)  
Старый 01.12.2021, 18:53
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 1,670

Сообщение от ureech
В результате получаю список подкатегорий в таком же виде,как и категории
Приведите примерчик списка подкатегорий.
А то у вас в категориях name везде одинаковый.
В подкатегориях так же?

В категориях так же value всегда "1". Так и должно быть? Только id отличаются?

Нужен какой-нибудь div, в который вложены инпуты категорий.

и вид нужного результата в терминах js, а не php напишите.

Последний раз редактировалось voraa, 01.12.2021 в 19:10.
Ответить с цитированием
  #3 (permalink)  
Старый 01.12.2021, 19:54
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 562

В общем в результате этого
function FieldsSubmit() {
    let ch = [];
    let arr =[];
    ch = $("input[name='field_name[]']:checked");

    $.each(ch, function (index, value) {
       arr[index] = ($(value).attr('data')) +':'+ ($(value).val());
    });
...
}

Имею такой массив
Array(4) [ "9:for_photo", "9:photo", "10:beer", "10:teaser" ]

который на сервере превращается в такой
Array ( [0] => 9:for_photo [1] => 9:photo [2] => 10:beer [3] => 10:teaser )

Как то не совсем удобно. Как можно сделать, что бы на сервере я имел что то такое
array (
    9=>(
    [0]=>for_photo
    [1] =>photo
         )
    10=>(
    [0] =>beer
    [1] => teaser
     )
     )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно составить массив imedia Элементы интерфейса 1 16.01.2017 07:29
Добавление объекта в массив в цикле Dark19 Элементы интерфейса 3 11.12.2016 22:11
Чтение данных из файла в массив TheSingleElk Общие вопросы Javascript 2 16.06.2016 01:09
Как составить такой массив? allanmiln Элементы интерфейса 1 21.02.2013 13:58
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 18:14