Как показать выбранный флажок в списке множественных флажков в laravel? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть список с несколькими флажками.Я хочу показать сохраненное значение в списке, используя установленный флажок.

Информация о пользователе хранится в Partner_Prefence таблице и столбце религии пользователя, названном p_religion

$profile_data= DB::table('partner_prefence')->select('p_religion')->first();

Выборка религий из таблицы религий

$religion_data=DB::table('religion')->select('religion_id','religion_name')->orderby('religion_name')->get();

Список множественного выбора

<select  multiple="multiple" name="religion[]">
   @foreach($religion_data as $religion)
     <option value="{{$religion->religion_id}}" {{$profile_data->p_religion == $religion->religion_id  ? 'selected' : ''}}>{{$religion->religion_name}}</option>
   @endforeach
</select>

У меня проблемы с отображением, какой пользователь религий имеет

{{$profile_data->p_religion == $religion->religion_id  ? 'selected' : ''}}

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

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

Вы храните идентификаторы в виде строки, но это сложно проверить, что определенное число в строке.Если вы конвертируете строку в массив, вы можете легко проверить это методом in_array().Этот метод вернет true, если данное значение существует в данном массиве

<select multiple="multiple" name="religion[]">
    {{-- no need to explode every time, it will reduce your performance --}}
    @php($religions = explode(',', $profile_data->p_religion))
    @foreach($religion_data as $religion)
        <option
                value="{{$religion->religion_id}}"
                {{--if user religion id exist in religions then mark as selected--}}
                {{in_array($religion->religion_id,$religions) ? "selected" : ""}}>
            {{$religion->religion_name}}
        </option>
    @endforeach
</select>
0 голосов
/ 01 октября 2018

Сохраняет ли столбец p_religion несколько идентификаторов, если это список с множественным выбором?Будет ли работать in_array(), тогда вместо использования $profile_data->p_religion == $religion->religion_id.

in_array ($religion->religion_id, explode(',', $profile_data->p_religion))

Добавлен вызов explode() для отключения, когда вы сохраняете взорванный массив.

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

<select  multiple="multiple" name="religion[]">
     @foreach($religion_data as $religion)
          <option value="{{$religion->religion_id}}" @if($profile_data->p_religion == $religion->religion_id) selected @endif>
               {{$religion->religion_name}}
          </option>
     @endforeach
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...