Autocomplete передача значения из select в массив

260
11 октября 2017, 08:04

Задача: выбрать кол-во инпутов/авторов, вывести их на экран, в каждом должен работать autocomplete по ФИО юзеров. После выбора предложенного значения автокомплитом, ФИО остается в инпуте, а id юзера передается в hidden.

В work_autor.php получаем список для нашего autocomplete

foreach ($res as $r) {
            $result[] = array('label' => $r->fullname, 'id' => $r->uid, 'value'=>$r->fullname);
        }

Реализация JS: Первый автор, его id и его vklad определены заранее, инпуты формируются, если авторов больше одного.

function reloadAutocomplete() { 
    $( ".disc" ).autocomplete( 
        { 
            source:'work_autor.php, 
            minChars: 2, 
            autoFill: true, 
            selectFirst: true, 
            width: '140px', 
            maxItemsToShow: 3, 
            select: function( event, ui ) { 
                $(".uid").val( ui.item.id); 
                 } 
        }) 
} 
 
//вывод инпутов  
$(document).ready(function () { 
    $('#count_soautors').on('change', function () { 
        var countSoautors = $(this).val()-1; //countSoautors - кол-во авторов, т.е. инпутов 
        var layout = ''; 
        for (var i = 0; i < countSoautors; i++) { 
            layout += '<input type="hidden" name="term" />'; 
            layout += '<input type="hidden" class="uid" name="uid[]" />'; 
            layout += 'Автор: <input type="text" class="disc" name="autor[]" size="90"/>'; 
            layout += 'Вклад автора в работу: <input required type="number" min="0" max="100" name="vklad[]" /><br/>'; 
        } 
        $('#soautorsList').html(layout); 
        reloadAutocomplete(); 
    }) 
});

В итоге получаем три массива

[autor] => Array
    (
        [1] => юзер1
        [2] => юзер2
        [3] => юзер3
    )
[uid] => Array
    (
        [1] => 2925
        [2] => 42202
        [3] => 42202
    )
[vklad] => Array
    (
        [1] => 50
        [2] => 20
        [3] => 30
    )

Т.е. последний выбранный id записывается во все элементы массива [uid]. Как исправить, чтобы id соответствовали авторам?

READ ALSO
Нуждаюсь в помощи в jQuery [требует правки]

Нуждаюсь в помощи в jQuery [требует правки]

Смешалось всё в кашу , чат выдаёт по 2 сообщения сразу , вот рабочий исходник ! http://installod

184
Как добавить блок с содержимым на сайт с Adobe Muse, не имея файла проекта? [требует правки]

Как добавить блок с содержимым на сайт с Adobe Muse, не имея файла проекта? [требует правки]

Я так понимаю, каждый id отвечает за свой стиль? и необходимо увеличить или уменьшить где-то маржин и добавить свой блок между ними?

255
Как добавить анимацию к свг ?

Как добавить анимацию к свг ?

Задавал здесь же вопрос про эту цифру, а как добавить всю это анимацию в css, к примеру если класс дать, тогда будет анимацияХочу сделать, так...

190
Скролл масштабированного элемента, Safari iOS

Скролл масштабированного элемента, Safari iOS

Если html элемент масштабирован (transform: scale([x])), то на iOS устройстве скролл этого элемента работает некорректно, контент сдвигается не на расстояние...

220