2014-04-27 12 views
7

Sto sperimentando che solo i campi di testo di input rispondono come previsto quando scrivo il codice per ripopolare un modulo (quando sono stati trovati errori ad esempio) o quando da una riga della tabella I fare clic sul pulsante Modifica e vado a un modulo modificabile. Il campo per una textarea non viene ripopolato quindi viene visualizzato vuoto, quindi, se lo salvi, eliminerei il contenuto della textarea. (So ​​che ultimamente sto facendo una serie di domande, il motivo è che ho praticamente finito la mia domanda e ho lasciato per la fine le cose minori che non ho potuto risolvere, quindi mi scuso per questo).Laravel: textarea non si riempie quando si utilizza Input :: old

qui è un esempio di quello che sto dicendo:

questo funziona per l'ingresso TextField:

OPERE

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

Cioè, il $ dall'utente> spese riempie il campo di testo della modulo che compare quando si fa clic sul pulsante Modifica di una riga della tabella.

Tuttavia, questo non funziona per un campo textarea:

<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> 

Vedi? quel messaggio $ user-> parte non passerà il contenuto alla textarea di un modulo.

Allo stesso modo: con ingresso :: vecchia

lavora per un campo di testo di input

OPERE

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

Non funziona per 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> 

E il controllore sta anche cercando per riempire il modulo inviando -> withInput

if($validator->fails()){ 

      return Redirect::route('usersgetformtopostads') 

         ->withErrors($validator) 

         ->withInput();       

         } 

ma, come ho detto, funziona solo per i campi di testo. Non mi ripopola un elenco selezionato o una textrarea

A proposito, ho guardato una domanda correlata qui dove l'autore dice che non poteva ripopolare un campo File e gli è stato detto che "non puoi" e ha dato questo come una risposta corretta, tuttavia, sono stato in grado di ripopolare i file caricati, non avendo alcun problema con quello.

risposta

24

textarea non ha un attributo value. Valori in textarea dovrebbero essere all'interno <textarea></textarea>, così nel tuo caso:

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

tack så mycket! (grazie mille!) –

4

Questo è un altro modo di fare lo stesso, ma con il componente Form da laravel:

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

vorrei aggiungere una cosa, se si utilizza Form Class per il modulo e gli elementi, non è necessario specificare esplicitamente il valore di Input :: old ('nome-elemento') per recuperare il valore dell'invio del modulo precedente.
Basta usare
{{ Form::text('name', null, array('id'=>'name', 'class' => 'class-to-apply')) }}
E sei a posto.

Qui, il valore null per il campo di testo sarà nullo per la prima volta e se si reindirizza nuovamente questa pagina con l'input, questo prenderà automaticamente il valore.

+0

Questo non sembra funzionare se il modello della textarea non è diverso da quello in cui è contenuto. Nel mio caso ho una relazione uno-a-uno e suppongo che il modello della mia form o $ order the Ho bisogno di sentire le textareas con $ order-> comment-> content ..... Come posso ottenere questo? – Maximum86

+0

Non riesci a capire cosa stai dicendo, sii più preciso? –

+0

Per favore fai riferimento alla domanda che ho postato qui dopo aver letto questa discussione, forse avrai una migliore comprensione del mio problema http://stackoverflow.com/questions/38634074/laravel-5-has-one-relationship-with-form-binding ? noredirect = 1 # comment64666953_38634074 – Maximum86

Problemi correlati