Как POST поле ввода, которые отключены / только для чтения с условием? - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь сделать поле ввода отключенным или доступным только для чтения, если кнопка еще не нажата, но у меня возникают проблемы с отправкой / отправкой ее в базу данных после добавления условия, которое делает ее отключенной или доступной только для чтения

    <form action="{{ route('amber.timestone.home.start', $task->id) }}" method="POST" class="align-center">
                                {{csrf_field()}}
                            <td>
                                <input class="my-2" type="text" name="ref" value="{{ $task->ref }}"
                                    @if(empty($task->start))
                                        readonly
                                    @endif
                                >


public function startTask($id)
    {
        $user = Task::find($id);
        $user->start = Carbon::now();
        $user->save();
        return back();
    }
public function endTask($id, Request $request)
    {
        $user = Task::find($id);
        $user->end = Carbon::now();
        $start = Carbon::parse($user->start);
        $end = Carbon::parse($user->end);
$user->ref = request('ref');
        $user->remarks = request('remarks');
        $user->campaign = request('campaign');
        $user->type = request('type');
            $hours = $end->diffInHours($start);
            $minutes = $end->diffInMinutes($start);
            $seconds = $end->diffInSeconds($start);
            $user->duration = $hours . ':' . $minutes . ':' . $seconds;
            $user->update();
            return back();
        }

Я попытался добавить скрытые с теми же именами, что и для тех, у кого условие readonly все еще не работает

Ответы [ 3 ]

3 голосов
/ 11 июля 2019

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

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

0 голосов
/ 11 июля 2019

Что ты думаешь? Если у вас есть значение, которое необходимо отправить обратно, поместите его в скрытое поле ввода. Так что вы можете создать поддельное поле с помощью CSS, возможно. Но если вы не хотите отправлять какие-либо данные, просто чтобы показать их, вы можете просто не включать скрытое поле ввода со значением.

0 голосов
/ 11 июля 2019

HTML - это язык разметки, он выделяет семантику данных, а не то, как они видятся (например, использование <strong> для выделения текста жирным шрифтом - совершенно неверный способ). Таким образом, вы должны использовать CSS-текстовый контейнер (в основном <div> или <span>), чтобы инкапсулировать его и быть доступным только для чтения. Затем, как предложил Адам Абдул Шакур, вы можете использовать скрытый ввод с тем же значением. Вам также следует рассмотреть возможность использования VueJS (уже упакованного в Laravel), его подход, основанный на данных, делает такие вещи тривиальными для синхронизации содержимого контейнера и ввода.

...