Laravel: textarea ne se remplit pas en utilisant Input:: old
je me rends compte que seuls les champs de texte D'entrée répondent comme prévu lorsque j'écris le code pour repeupler un formulaire (quand des erreurs ont été trouvées par exemple) ou lorsque je clique sur le bouton Modifier d'une rangée de tableaux et que je passe à un formulaire modifiable. Le champ pour un textarea n'est pas repeuplé il est vide, donc, si je sauvegarde, je voudrais supprimer le contenu de la textarea. (Je sais que je pose une série de questions ces derniers temps, la raison est que j'ai essentiellement terminé ma demande et je laissé pour la fin du mineur choses que je ne pouvais pas résoudre, donc mes excuses pour cette).
voici un exemple de ce que je dis:
Cela FONCTIONNE pour l'entrée textfield:
<div class="col-md-4">
<label for="relato">Charges</label>
<input type="text" name="expenses" maxlength ="30" class="form-control"
value = "{{ $user->expenses }}"/>
</div>
C'est le $user->dépenses remplit les champs du formulaire qui apparaît lorsque vous cliquez sur le bouton Modifier d'une ligne de tableau.
Toutefois, cela ne fonctionne pas pour un champ de type 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>
Voir? la partie $utilisateur->message ne passera pas le contenu de la textarea d'un formulaire.
de la Même façon: avec l'Entrée::vieux
Fonctionne pour une Entrée de champ de texte
Email: <input type="text" class="form-control" name="email" {{ (Input::old('email')) ?' value ="' . e(Input::old('email')). '"' : '' }}>
NE FONCTIONNE PAS POUR 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>
et le contrôleur essaie aussi de remplir le formulaire en envoyant ->withInput
if($validator->fails()){
return Redirect::route('usersgetformtopostads')
->withErrors($validator)
->withInput();
}
mais, comme je l'ai dit, ça ne marche que pour les textfields. Ne pas remplir de nouveau moi une liste de sélection ou un textrarea
En passant, j'ai regardé une question connexe ici lorsque l'auteur dit qu'il ne pouvait pas repeupler un champ de fichier et qu'on lui a dit que "vous ne pouvez pas" et il a donné cette réponse correcte, cependant, j'ai été en mesure de repopuler les fichiers téléchargés, n'ayant aucun problème avec cela.
4 réponses
textarea
ne pas value
l'attribut. Les valeurs dans textarea
devrait être à l'intérieur de <textarea></textarea>
, donc dans ton cas:
<textarea id="message" name = "content" rows="10" cols="50" onKeyPress class="form-control">
{{{ Input::old('content') }}}
</textarea>
c'est une autre façon de faire la même chose mais avec le composant Forms de laravel:
{{ Form::textarea('content',Input::old('content'),array('id' => 'message')) }}
je voudrais ajouter une chose, si vous utilisez la classe de formulaire pour le formulaire et les éléments, alors vous n'avez pas besoin de corriger explicitement L'entrée::old('element-name') pour récupérer la valeur de la soumission de formulaire précédente.
Suffit d'utiliser {{ Form::text('name', null, array('id'=>'name', 'class' => 'class-to-apply')) }}
Et vous êtes bon pour aller.
Ici, la valeur null pour le champ de texte sera null pour la première fois, et si vous redirigez cette page avec input alors cela saisira automatiquement la valeur.
Juste pensé à elle, mis l'ancienne valeur entre les crochets, comme ci-dessous
<textarea name="message">{{ old('message') }}</textarea>