Я думаю, что у вас может быть ряд проблем, которые мешают этому работать. Я думаю, что большинство происходит из-за вашего зацикливания и случайного присвоения одного и того же идентификатора многим элементам.
Однако приведенный выше код также немного сбивает с толку - блейд-файл должен производить что-то отличное от HTML, который вы показываете. Я полагаю, это была более поздняя итерация? Я поговорю с блейд-файлом, так как его легче увидеть, поскольку он меньше.
Чтобы это работало, я предлагаю следующее: во-первых, у вас есть только один пользователь, поэтому переместите это:
<span id="userData" data-name="{{ auth()->user()->name }}"
data-surname="{{ auth()->user()->surname }}"></span>
вне цикла (или поместите его в блок $ loop-> first), чтобы идентификатор #userData
назначался в DOM только один раз.
Затем удалите идентификатор единственного числа #name
из ввода. То же самое для #surname
. Как у вас есть, он продолжает присваивать несколько полей идентификаторов с одинаковым идентификатором. name="participant_name[]"
в порядке и будет работать на POST.
Непонятно, хотите ли вы, чтобы имя пользователя и фамилия заполняли ВСЕ поля ввода, или только одно рядом с местом, где он ставит флажок. Если вы хотите заполнить их все, добавьте класс к двум входам в цикле, таким как 'firstName' и 'фамилия'. Тогда легко заполнить все своими jquery:
$('.firstName').val(userData.data('name'));
$('.surname').val(userData.data('surname'));
Если, однако, вы хотите заполнить только тот, который отмечен, это немного сложнее (но не сложно). Вам нужно будет установить флажок в каждом цикле рядом с набором входов. Самый простой способ отследить правильный флажок для полей ввода - добавить итератор в цикл (назначить его, а затем выполнить итерацию: $x ++
), а затем использовать этот флажок в поле данных (например, data-count={{$x}}
) и добавить идентификатор на входы, например, так:
id = 'name{{$x}}'
id = 'surname{{$x}}'
Отсюда добавьте к своему коду jquery, чтобы проверить , какой флажок был установлен , получив счетчик из поля подсчета данных на флажке. Затем вы можете определить правильные входы для добавления имени пользователя по идентификатору:
var count = $(this).data('count');
$('#name'+count).val(userData.data('name'));
$('#surname'+count).val(userData.data('surname'));
Надеюсь, это поможет