2014-04-27 9 views
7

Ich habe festgestellt, dass nur die Eingabefelder wie erwartet reagieren, wenn ich den Code zum Auffüllen eines Formulars schreibe (wenn z. B. Fehler gefunden wurden) oder aus einer Tabellenzeile I Klicke auf den Bearbeiten-Button und ich gehe zu einem editierbaren Formular. Das Feld für einen Textbereich wird nicht neu gefüllt, so dass es leer ist. Wenn ich es also speichere, würde ich den Inhalt des Textbereiches löschen. (Ich weiß, dass ich in letzter Zeit eine Reihe von Fragen gestellt habe, der Grund ist, dass ich meine Bewerbung im Grunde abgeschlossen habe und ich die kleinen Dinge, die ich nicht lösen konnte, zum Schluss verließ, also entschuldige mich dafür).Laravel: TextArea füllt nicht bei Verwendung von Input :: old

hier ist ein Beispiel dafür, was ich sage:

Dies funktioniert für die Eingabe Textfeld:

WORKS

<div class="col-md-4"> 
<label for="relato">Charges</label> 
<input type="text" name="expenses" maxlength ="30" class="form-control" 
value = "{{ $user->expenses }}"/> 
</div> 

Das heißt, daß die $ user-> Kosten füllt das Textfeld der ist Formular, das beim Klicken auf die Schaltfläche Bearbeiten einer Tabellenzeile angezeigt wird.

jedoch, dass für ein Textfeld Feld funktioniert nicht:

<div class="row"> 

       <label for="relato">Description</label> 
       <textarea name ="message" id="message" rows="5" cols="100" value = "{{ $user->message }} class="form-control" 
     </textarea> 
       </div> 

sehen? Dieser Teil $ user-> message übergibt den Inhalt nicht an das Textfeld eines Formulars.

Ähnlich: mit Eingang :: alten

Arbeiten für einen Eingangstextfeld

WORKS

Email: <input type="text" class="form-control" name="email" {{ (Input::old('email')) ?' value ="' . e(Input::old('email')). '"' : '' }}> 

FUNKTIONIERT NICHT FÜR TEXTAREA-

<div class="form-group"> 
    <label for="relato">Une petite description</label> 
    <textarea id="message" name = "content" rows="10" cols="50" onKeyPress class="form-control" {{ (Input::old('content')) ?' value ="' . e(Input::old('content')). '"' : '' }} 
    "> 
    </textarea>{{ $errors->first('content')}} 
     </div> 

Und die Steuerung auch versucht, um das Formular durch Senden zu füllen -> withInput

if($validator->fails()){ 

      return Redirect::route('usersgetformtopostads') 

         ->withErrors($validator) 

         ->withInput();       

         } 

aber wie gesagt, es funktioniert nur für Textfelder. Erneutes Auffüllen einer Auswahlliste oder eines Textfelds

Übrigens habe ich hier eine verwandte Frage angeschaut, wo der Autor sagt, dass er ein Dateifeld nicht wieder auffüllen konnte und ihm gesagt wurde, dass "du kannst" und er gab das als eine korrekte Antwort, jedoch konnte ich die hochgeladenen Dateien neu auffüllen, was kein Problem damit hat.

Antwort

24

textarea hat kein value Attribut. Werte in textarea sollte innerhalb <textarea></textarea>, so in Ihrem Fall sein:

<textarea id="message" name = "content" rows="10" cols="50" onKeyPress class="form-control"> 
{{{ Input::old('content') }}} 
</textarea> 
+0

tack så mycket! (Vielen Dank!) –

4

Dies ist ein weiterer Weg ist das gleiche, aber mit dem Forms-Komponente aus Laravel zu tun:

{{ Form::textarea('content',Input::old('content'),array('id' => 'message')) }} 
1

Ich möchte einen hinzufügen Wenn Sie die Form-Klasse für das Formular und die Elemente verwenden, müssen Sie Input :: old ('Elementname') nicht explizit korrigieren, um den Wert der vorherigen Formularübergabe abzurufen.
Verwenden Sie einfach
{{ Form::text('name', null, array('id'=>'name', 'class' => 'class-to-apply')) }}
Und Sie sind gut zu gehen.

Hier ist Null-Wert für das Textfeld zum ersten Mal null, und wenn Sie diese Seite mit Eingabe zurückleiten, dann wird dies automatisch den Wert greifen.

+0

Dies scheint nicht zu funktionieren, wenn das Modellmodell nicht anders ist als das, in dem es enthalten ist. In meinem Fall habe ich eine Eins-zu-Eins-Beziehung und nehme das Modell meines Modells oder $ order an Ich muss die Textareas mit $ order-> comment-> content fühlen ..... Wie erreiche ich das? – Maximum86

+0

Kann nicht verstehen, was Sie sagen, genauer? –

+0

Bitte beziehen Sie sich auf die Frage, die ich hier gepostet habe, nachdem Sie diesen Thread gelesen haben. Vielleicht werden Sie mein Problem besser verstehen http://stackoverflow.com/questions/38634074/laravel-5-has-one-relationship-with-form-binding ? noredirect = 1 # comment64666953_38634074 – Maximum86

Verwandte Themen