Извлечение значении input и select

262
22 июля 2017, 08:20

Здравствуйте! Есть такая форма(id='form'). Нужно извлечь значение input и select и составить массив(примерно: [{1, Главная}, {2, Новости}, ...]) после нажатия на кнопку. Как можно составить такой массив с помощью js?

Есть код, который может достать значение select:

 $('.resolve-selected-user-id').click(function() {
  let userId = $('.user-select option:selected').data('user-id');
  console.log('Selected user #' + userId);
    alert(userId);
    }); 

А дальше не знаю как поступить. Вот html код:

while ($row = $menu->fetch_assoc()) { ?>
                        <input style="width: 30px" value="<?= 
$row['position'] ?>">
                        <select class="user-select">
                            <option data-user-id="<?=$row['id']?>"><?= $row['name'] ?></option>
                            <?$calc++;
                            $q = getMenu($type_object);
                            while ($pow = $q->fetch_assoc()) {
                                if ($pow['name'] != $row['name']) {
                                    ?>
                                    <option data-user-id="<?=$pow['id']?>"><?= $pow['name'] ?></option>
                                    <?
                                }
                            }
                            ?>
                        </select>
                        <span class="glyphicon glyphicon-minus-sign delPage"></span>
                        <br>
                    <? } ?>
Answer 1

Вам нужно для каждой пары input и select получить значения и записать их в заранее созданный массив.

Чтобы определить пары лучше input и select одной строки обернуть в <div>.
Но можно воспользоваться тем, что элементы соседние

var result = [];
$('#form input').each(function () {
  result.push({
    input: $(this).val(),
    select: $('+ select', this).val()
  })
})
Answer 2

Я бы делал как-то так. Добавил имена и значения для инпутов и селектов. И значения бы сохранил в value.

<?php
$num = 0;
while ($row = $menu->fetch_assoc()) { ?>
    <input style="width: 30px" name="user_input_<?=$num?>" value="<?=$row['position'] ?>">
                        <select class="user-select" name="user_select_<?=$num?>">
                            <option data-user-id="<?=$row['id']?>" value="<?=$row['id']?>"><?= $row['name'] ?></option>
                            <?$calc++;
                            $q = getMenu($type_object);
                            while ($pow = $q->fetch_assoc()) {
                                if ($pow['name'] != $row['name']) {
                                    ?>
                                    <option data-user-id="<?=$pow['id']?>" value="<?=$pow['id']?>"><?= $pow['name'] ?></option>
                                    <?
                                }
                            }
                            ?>
                        </select>
                        <span class="glyphicon glyphicon-minus-sign delPage"></span>
                        <br>
<?php 
    $num++;
} 
?>

Сохранил максимальное значение номера

<script>
    var max_num = <?=$num?>;
</script>

и пробежался по всем полям и собрал их в массив

 $('.resolve-selected-user-id').click(function() {
    var res = [];
    for (var i = 0; i < max_num; i++) {
       //let userId = $('.user-select option:selected').data('user-id');
       //console.log('Selected user #' + userId);
       //alert(userId);
       var my_obj = {};
       var inp_val = $('[name=user_input_'+i+']').val();
       var sel_val = $('[name=user_select_'+i+']').val();
       my_obj.inp_val = sel_val;
       res.push(my_obj);
    }
    res; // то что надо 
});
READ ALSO
Wordpress Изменение Контента Страницы

Wordpress Изменение Контента Страницы

Всем привет, почитал мануал и посмотрел видео про wordpress, нашел что есть скрипты для изменения текста

277
Ошибка composer.phar

Ошибка composer.phar

Выдало такую ошибку при работе с плагином minify - You must set up the project dependencies, run the following commands: curl -sS https://getcomposerorg/installer | php php composer

212
Интеграция Payboutique

Интеграция Payboutique

Народ, кому приходилось с этим сталкиваться подкиньте пример как это все выглядит в php, буду очень благодаренДокументацию читал в интернете...

307
Symfony 3, валидация полей формы

Symfony 3, валидация полей формы

Здравствуйте! У меня такой вопрос: мне нужно сделать валидацию полей в формеИ вывод ошибок в форме Например одно из полей сейчас в Entity:

369