Добро пожаловать в переполнение стека!
Во-первых, у меня была эта проблема раньше, когда я начал использовать этот плагин (действительно потрясающий BTW) ...
В вашем коде, когда вы вводите автозаполнение:
- плагин сравнивает 'input' с 'ключевым словом',
- , когда передаете массив в представление в
array_push
у вас есть 3 объекта (id_aut, nom, siecle) - но при получении их в HTML у вас есть только 2 объекта (nom, id_aut).
Я использую laravel в своем проекте, я поделюсь некоторые части моего кода, чтобы объяснить, как вы можете это исправить ...
В моем контроллере:
$response = array();
foreach($items as $it) {
$response[] = array("id" => $it->cod_ref,
"label" => $it->name,
"qty" => $it->qty,
"price" => $it->price,
"big_id" => $it->id);
}
echo json_encode($response);
exit;
В моем блоке <script>
в представлении:
// the initial code of autocomplete function goes here
select: function (event, ui) {
// Set selection
$('.item_cod_ref').val(ui.item.id); // with this i search
$('.item_name').val(ui.item.label); // this is what i show in the dropdown
$('.item_qty').val(ui.item.qty);
$('.item_price').val((Number(ui.item.price)).toFixed(2));
$('#item_id').val(ui.item.big_id);
return false;
Если вы сравните оба select
, вы увидите, что каждый объект в array_push
должен иметь в ответ один и тот же ui
объект.
Теперь, на мой взгляд, как в вашем HTML:
<input type="hidden" name="item_id" id="item_id" />
<input class="item_cod_ref form-control" />
<input class="item_name form-control" />
<input type="number" class="form-control" />
<input type="number" class="item_qty form-control" />
<input class="item_price form-control" />
У меня есть один вход для каждого объекта, который я получаю, что я делаю или что вы делаете с данными, не имеет значения.
Итак, добавьте все ui.object
и input
по мере необходимости d должен работать так, как вы ожидаете.
Редактировать: я что-то пропустил, вы можете сохранить id
в скрытом вводе, как я сделал, передать его в последний объект массива.
Надеюсь это тебе поможет!