Значение тега пользовательского элемента ввода Livewire?

Совершенно новый для Livewire здесь.

Я столкнулся с чем-то, на что не могу найти ответа, читая документацию и до сих пор используя Google.

Предположим, что у меня есть несколько полей ввода внутри формы, которые имеют настраиваемые атрибуты с присвоенным им значением.

Пример: <input type="text" Wire:model="title" valueid="332">

Поэтому мне нужно не значение ввода, а значение, которое хранится внутри пользовательского атрибута.

В течение долгого времени я использовал ajax-вызовы jQuery и мог просто получить атрибут valueid, отправить его значение «332» внутри ajax-вызова и обработать его дальше внутри моего метода(ов) контроллера. Но я не могу найти, как это сделать с помощью LiveWire.

Может ли кто-нибудь указать мне, как получить эти атрибуты и их значения внутри моего метода(ов) компонента Livewire?

Большое спасибо за вашу помощь!

Редактировать:

Есть 5 полей ввода подряд, и в моей таблице несколько строк. Первый ввод в каждой строке — это не стандартное поле ввода, а настраиваемое поле «выбора» или раскрывающегося списка. Заполнено двумя столбцами: значение, которое видит пользователь, и идентификатор, который это значение имеет в базе данных.

Как только пользователь выбирает значение из раскрывающегося списка, мне нужно получить идентификатор выбранного значения внутри компонента, а не само выбранное значение.

Таким образом, поле выбора имеет несколько значений, и одно из них имеет значение «автомобиль», а соответствующий идентификатор записи БД — 23. Я хочу получить 23 вместо «автомобиль» в своем компоненте для дальнейшей его обработки.

Поскольку существует множество строк с одинаковым настраиваемым полем выбора, я не вижу возможности сохранить идентификатор в переменной. Поэтому вместо этого я использовал jquery ранее, чтобы сохранить его как значение атрибута непосредственно в самом поле выбора.

Надеюсь, теперь стало яснее.

Было бы полезно узнать, для чего вы используете это значение - вероятно, это будет другой подход, чем тот, который вы сделали, скажем, с jQuery.

Qirel 05.05.2024 19:09

Пожалуйста, приведите конкретный пример

TUPKAP 05.05.2024 19:31

@Qirel: у меня есть специальный выбор, раскрывающийся список. Все выбираемые значения имеют базовый идентификатор (базы данных). Когда пользователь выбирает элемент поля выбора, идентификатор (сейчас) сохраняется, как я уже говорил в своем вопросе: он сохраняет этот идентификатор в настраиваемом теге «valueid», который находится в этом настраиваемом поле выбора. Идентификатор — это то, что нужно моему контроллеру, а не само выбранное значение. Прекрасно работает с jQuery, и я надеялся, что что-то подобное возможно и с LiveWire.

Dave33 05.05.2024 20:25

Извините, я говорю о «пользовательском теге», но я, очевидно, имею в виду «атрибут». Посмотрите пример в моем первом посте. Итак, мне нужна помощь: я знаю, как получить значение, введенное в поле ввода, и использовать его в контроллере livewire. Но как я могу получить значение атрибута поля ввода с именем valueid? Итак, в приведенном выше примере я хотел бы получить значение «332» в качестве значения, когда пользователь сохраняет форму. Есть ли способ получить доступ к атрибутам, прикрепленным к полю ввода, и получить их значение в моем контроллере?

Dave33 05.05.2024 23:49
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
150
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать стандартный селектор jQuery, чтобы получить значение тега, а затем использовать что-нибудь вместе со строками $wire.property = value. Для этого потребуется общедоступное свойство компонента Livewire, но затем оно будет установлено. Вы также можете использовать @set(property, value) изнутри компонента. Вам нужно будет иметь возможность запускать событие livewire из выбора при изменении, а затем захватывать его с помощью JS. В качестве альтернативы вы можете просто установить значение правильного идентификатора и прикрепить его к свойству с помощью wire:model, что, на мой взгляд, является лучшим и менее запутанным решением. Вы можете создать массив правильных значений в компоненте Livewire и использовать лезвие @foreach для создания параметров с правильным идентификатором и отображаемых значений.

public array $arr = [];
public string $select;
...
public function getValues() {
    $models = Table::get();
    foreach ($models as $v) {
        $this->arr[$v->id] = $v->column;
    }
...
<select wire:model>
    <option></option>
    @foreach ($arr as $k => $v)
        <option value = "{{ $k }}">{{ $v  }}</option
    @endforeach
</select>

Другие вопросы по теме