#php #laravel
Вопрос:
У меня есть список из десяти тестовых вопросов, и я пытаюсь перетасовать четыре из десяти вопросов каждому студенту, я использовал тасовку по каждому вопросу и использовал take(4). Это работает, но варианты вопросов также изменяют положение и рассеиваются, когда я выбирал, я также пробовал случайные(4), которые также показывают то же самое. Любые исправления к этому. Ниже приведен код.
@foreach ($lesson->test->questions->shuffle()->take(4) as $question)
<b>{{ $loop->iteration }}. {{ $question->question }}</b>
<br />
@foreach ($question->options as $option)
<input type="radio" wire:model='question.{{ $question->id }}'
name="questions[{{ $question->id }}]" value="{{ $option->id }}" />
{{ $option->option_text }}<br />
@endforeach
<br />
@endforeach
Случайный процесс
@foreach ($lesson->test->questions->random(4) as $question)
<b>{{ $loop->iteration }}. {{ $question->question }}</b>
<br />
@foreach ($question->options as $option)
<input type="radio" wire:model='question.{{ $question->id }}'
name="questions[{{ $question->id }}]" value="{{ $option->id }}" />
{{ $option->option_text }}<br />
@endforeach
<br />
@endforeach
Комментарии:
1. Пожалуйста, поделитесь своим примером данных о вариантах.
2. это ссылка на видео, показывающее поведение цикла loom.com/share/92fb1d246e0d47a686b1a33e695c1177
3. сколько вариантов каждого вопроса? Я думаю, что вашим значением параметра должны быть данные json
4. у каждого вопроса есть свои наборы опций, в зависимости от того, сколько их задано, некоторые вопросы содержат два, некоторые-четыре, а некоторые-три. Можете ли вы написать кодовое представление набора данных json для опций. Спасибо
5. Вам нужен вариант с правильным ответом или что-то еще? Вам нужен формат данных JSON. Пожалуйста, найдите в Google пример данных JSON
Ответ №1:
нашел исправление, проблема в том, что компонент обновляется всякий раз, когда я нажимаю на опцию, которая заставляет его повторно отображать и перетасовывать вопросы. Что я сделал, так это позвонил в wire:игнорируйте, чтобы он не перерисовывался, пока я нажимаю на ответ. Смотрите код ниже
<form wire:submit.prevent='lessonTest' action="{{ route('lessons.test', [$lesson->slug]) }}"
method="post">
{{ csrf_field() }}
<div wire:ignore>
@foreach ($lesson->test->questions->random(4) as $questions)
<b>{{ $loop->iteration }}. {{ $questions->question }}</b>
<br />
@foreach ($questions->options as $option)
<input type="radio" wire:model='question.{{ $questions->id }}' name="questions[{{ $questions->id }}]"
value="{{ $option->id }}" required />
{{ $option->option_text }}<br />
@endforeach
<br />
@endforeach
</div>
<button class="btn btn-success btn-lg refresh" type="submit">Submit</button>
</form>