【问题标题】:Form checkbox input array gets flooded with textarea input表单复选框输入数组被文本区域输入淹没
【发布时间】:2020-11-25 12:27:59
【问题描述】:

)

我一直在为我的 Laravel 应用程序设计一个表单...... 我有 3 个字段是复选框,因此作为数组发布,然后我有一个 textarea 字段,有时 3 个复选框输入中的一个会被来自 textarea 输入字段的数据淹没......这很奇怪,只会在某个时候发生因此我在数据库中得到一个长截断错误的数据...

但是我在 $request 级别添加了输入,并且可以看到复选框中的数组已经被来自 textarea 字段的数据淹没了......我无法理解为什么会这样,因为它只是有时... 而且我什至可以得到错误并返回浏览器中的页面并再次提交所有相同的数据,然后它就可以工作了.. 什么会导致这种奇怪的行为

这是我的表单所在的 Laravel 刀片

@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

另请参阅 $request 上的 DD 转储图像

【问题讨论】:

    标签: laravel forms checkbox


    【解决方案1】:

    嗯,我想我明白了 :-) 但它一直是一个零星的错误,所以我还不确定......但似乎它已经消失了:-)

    好像是我搞砸了每个字段上的这个值线

    我的输入字段上的值线结构是

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

    应该是的

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

    不知道为什么我最终在每个输入字段上都使用了如此晦涩的值部分 :-) 但有时眼睛会因为代码而失明:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2014-02-17
      • 1970-01-01
      • 2021-08-05
      • 2021-12-04
      • 1970-01-01
      相关资源
      最近更新 更多