'#default_value' - Problem
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 04.06.2008 - 10:41 Uhr in
Für ein Formular versuche ich die Default-Values zu setzen
$form['anhang'] = array(
'#type' => 'file',
'#title' => t('Anhang'),
'#description' => t('nur PDF erlaubt, max. Größe 1 MB'),
'#default_value' => (($node -> files[0] -> filename)? $node -> files[0] -> filename : t('keine Datei gespeichert')),
);
Lt. API kann man in einem 'file' ein Default-Value setzten. Ich möchte gern den File-Name oder 'keine Datei gespeichert' im Eingabefeld ausgeben.
Hat jemand eine Ahnung ob das geht und wenn ja wie?
Gruß
UwBach
- Anmelden oder Registrieren um Kommentare zu schreiben
Im zweifelsfall gehts mit
am 04.06.2008 - 13:11 Uhr
Im zweifelsfall gehts mit jQuery
<?php
hook_form_alter($form_id) {
if ($form_id == 'deine_form_id') {
$dein_wert = (($node -> files[0]->filename)? $node -> files[0]->filename : t('keine Datei gespeichert'));
drupal_add_js('
$(document).ready( function () {
$("#id-deines-file-inputs").val("'.$dein_wert.'");
});
', 'inline');
}
}
?>
Danke, leider funktioniert das ..
am 04.06.2008 - 13:36 Uhr
.. bei diesem Feld nicht. Bei einem normalen Textfeld funktioniert dein Code super, nur wird bei dem Eingabefeld vom Typ 'file' von Drupal automatisch noch eine JS-Funktion zur Prüfung der Pfade hinzugefügt (habe ich grade erst entdeckt). Da gibt dann es Konflikte.
Als werde ich ein Lable mit den Informationen einsetzen.
Besten Dank jedenfalls, dein Code funktioniert super und kann auch direkt im Formular mit übergeben werden.
UwBach
Ach ja, hatte nicht dran
am 04.06.2008 - 17:21 Uhr
Ach ja, hatte nicht dran gedacht dass dann beim abschicken ein ungültiger pfad drinsteht... das könnte man theoretisch aber auch mit jQuery lösen. Also beim senden des Formulars prüfen ob der Wert vorher durch jQuery eingesetzt wurde oder von user kommt.
Prinzip: if (senden_value == gesetzter_default_value) { value wieder auf leer setzen; }
Aber ich denke fast labels sind die sauberere Lösung hier.