Массив ввода флажка формы заполняется вводом текстового поля - PullRequest
0 голосов
/ 05 августа 2020

)

Я боролся с формой для своего Laravel приложения .... У меня есть 3 поля, которые являются флажками и, следовательно, отправляются как массивы, а затем у меня есть поле textarea и каким-то образом ИНОГДА один из трех входов флажка заполняется данными из поля ввода текстового поля ... Это очень странно и случается только время от времени, поэтому я получаю данные о длинной усеченной ошибке в базе данных ...

Но Я выполняю ввод данных на уровне $ request и уже вижу, что массив из флажка заполнен данными из поля textarea ... Я не могу понять, почему это так, поскольку это только иногда ... И Я даже могу получить сообщение об ошибке и go вернуться на страницу в браузере и отправить снова со всеми теми же данными, и тогда он может работать .. ЧТО может вызвать такое странное поведение

Это мой Laravel blade, где форма имеет вид

@extends('layouts.app')

@section('head')
@endsection

@section('content')
@php 
// dd($errors);
@endphp
<h2 class="page-title">Opret Artist Side</h2>
<div class="artist-box"> 
    <form class="formgrid" method="POST" action="{{ route('artist.store') }}">
        @csrf
        <div class="formleft">
            <label for="artist_name" class="label">Artist navn</label>
            <input type="text" id="artist_name" name="artist_name" class="formitem @error('artist_name') is-invalid @enderror" value="{{ old('artist_name', $post->artist_name ?? null) }}" />
            
            @error('artist_name')
                <div class="invalid-feedback">
                    @foreach($errors->get('artist_name') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="artist_name_help">Jeres band/artist navn. <span class="text-danger">OBS! Kan IKKE ændres</span></small>
            @enderror    
        </div>

        
        <div class="formright">
            <label for="contact_person" class="label">Kontakt person</label>
            <input type="text" name="contact_person" id="contact_person" class="formitem @error('contact_person') is-invalid @enderror" value="{{ old('contact_person', $post->content ?? null) }}" />
            
            @error('contact_person')
                <div class="invalid-feedback">
                    @foreach($errors->get('contact_person') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="contact_person_help">Kontakt persons navn</small>
            @enderror    
        </div>
            

        <div class="formleft">
            <label for="email" class="label">Email</label>
            <input type="text" name="email" id="email" class="formitem @error('email') is-invalid @enderror" value="{{ old('email', $post->email ?? null) }}" />
            
            @error('email')
                <div class="invalid-feedback">
                    @foreach($errors->get('email') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="email_help">Kontakt email</small>
            @enderror
        </div>


        <div class="formright">
            <label for="phone" class="label">Tlf nummer</label>
            <input type="text" name="phone" id="phone" class="formitem @error('phone') is-invalid @enderror" value="{{ old('phone', $post->phone ?? null) }}" />
            
            @error('phone')
                <div class="invalid-feedback">
                    @foreach($errors->get('phone') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="phone_help">Kontakt tlf nummer</small>
            @enderror
        </div>

        
        <div class="formleft">
            <label for="hometown" class="label">Hjemby</label>
            <input type="text" name="hometown" id="hometown" class="formitem @error('hometown') is-invalid @enderror" value="{{ old('hometown', $post->hometown ?? null) }}" />
            
            @error('hometown')
                <div class="invalid-feedback">
                    @foreach($errors->get('hometown') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="hometown_help">Jeres Hjemby</small>
            @enderror
        </div>


        <div class="formright">
            <label for="category" class="label">Kategori</label>
            <select name="category" id="category" class="formitem @error('category') is-invalid @enderror">
                {{-- Show a non selectable if with info of none selected --}}
                @if(old('category') === null)
                    <option disabled="disabled" selected value="null">Vælg en kategori</option>
                @endif
                
                @foreach($categories as $category)
                    <option @if(old('category') !== null && old('category') == $category->id) selected @endif value="{{ $category->id }}"
                        >{{ $category->artist_category }}</option>
                @endforeach
            </select>
            
            @error('category')
                <div class="invalid-feedback">
                    @foreach($errors->get('category') as $error)
                        {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="">Hvilken kategori hører i under</small>
            @enderror
        </div>

        
        <div class="formfull">
            <label for="budget" class="label">Budget i spiller for</label>
            <ul class="ks-cboxtags">
            @foreach($budgets as $budget)
                {{-- <div class="form-check form-check-inline"> --}}
                <li><input @if(old('budget') !== null && in_array($budget->id,old('budget'))) checked @endif
                type="checkbox" name="budget[]" id="budget{{ $budget->id }}" class="form-check-input @error('budget') is-invalid @enderror" value="{{ $budget->id }}" />
                <label class="form-check-label" for="budget{{ $budget->id }}">{{ $budget->artist_budget }}</label></li>
                {{-- </div> --}}
            @endforeach
            </ul>
            
            @error('budget')
                <div class="invalid-feedback d-block">
                    @foreach($errors->get('budget') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="budget_help">Vælg hvilket budget i optræder for, gerne flere</small>
            @enderror           
        </div>
        
        {{--  --}}
        <div class="formfull">
            <label for="genres" class="label">Genre</label>
            <ul class="ks-cboxtags">
            @foreach($genres as $genre)
                {{-- <div class="form-check form-check-inline"> --}}
                <li><input @if(old('genres') !== null && in_array($genre->id,old('genres'))) checked @endif
                type="checkbox" name="genres[]" id="genres{{ $genre->id }}" value="{{ $genre->id }}" class="form-check-input @error('genres') is-invalid @enderror" />
                <label class="form-check-label" for="genres{{ $genre->id }}">{{ $genre->genre }}</label></li>
                {{-- </div> --}}
            @endforeach
            </ul>
            
            @error('genres')
                <div class="invalid-feedback d-block">
                    @foreach($errors->get('genres') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="">Hvike genrer hører i under</small>
            @enderror           
        </div>
        {{--  --}}

        <div class="formfull">
            <label for="area" class="label">Områder hvor i optræder</label>
            <ul class="ks-cboxtags">
            @foreach($areas as $area)
                {{-- <div class="form-check form-check-inline"> --}}
                <li><input @if(old('area') !== null && in_array($area->id,old('area'))) checked @endif
                type="checkbox" name="area[]" id="area{{ $area->id }}" value="{{ $area->id }}" class="form-check-input @error('area') is-invalid @enderror" />
                <label class="form-check-label" for="area{{ $area->id }}">{{ $area->artist_area }}</label></li>
                {{-- </div> --}}
            @endforeach
            </ul>
            
            @error('area')
                <div class="invalid-feedback d-block">
                    @foreach($errors->get('area') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
                <small class="text-muted form-text" id="">Vælg hvilke områder i optræder i</small>
            @enderror           
        </div>

     
        <div class="formleft">
            <label for="desc" class="label">Beskriv jer selv</label>
            <textarea name="description" id="description" class="formitem @error('description') is-invalid @enderror">{{ old('description', $post->description ?? null) }}</textarea>
            
            {{-- <input id="description" value="{{ old('description', $post->description ?? null) }}" class="form-control @error('description') is-invalid @enderror" name="description" type="hidden">
            @trix(\App\ArtistPage::class, 'trixinput',
            [
            'id' => 'description',
            // 'class' => 'form-control',
            'hideTools' => ['file-tools'],
            'hideButtonIcons' => ['attach', 'link', 'code', 'strike', 'heading-1']
            ]) --}}
            
            {{-- <input id="desc" value="{{ old('description', $post->description ?? null) }}" type="hidden" name="description">
            <trix-editor input="desc" class="@error('description') is-invalid @enderror"></trix-editor> --}}
            @error('description')
                <div class="invalid-feedback">
                    @foreach($errors->get('description') as $error)
                    {{ $error }}
                    @endforeach
                </div>
            @else 
            <small class="text-muted form-text" id="description_help">Giv en god beskrivelse af jer selv og hvad i tilbyder<br>
                Tilladte tags er <strong>{{ '<br><b><i><li><ul><ol><hr><strong><p>' }}</strong>
            </small>
            @enderror           
        </div>


        <button type="submit" class="btn btn-primary">Opret</button>
    </form>
</div>

    @endsection

См. также этот образ дампа DD в запросе $

введите описание изображения здесь

1 Ответ

0 голосов
/ 07 августа 2020

Хмммм Думаю, я понял это :-) Но это была такая спорадическая ошибка c, поэтому я еще не уверен ... Но похоже, что она исчезла: -)

Кажется как будто это была эта строка значения в каждом поле, которое я испортил

Структура строки значений в полях ввода, которые у меня были, была

value="{{ old('artist_name', $post->artist_name ?? null) }}"

И это должно быть

value="{{ old('artist_name') ?? $post->artist_name ?? null }}"

Не знаю, почему я получил такую ​​непонятную часть Value в каждом поле ввода :-) Но иногда глаза просто слепнут на коде: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...