[gelöst] Ausgabe in Textarea
am 19.05.2015 - 14:37 Uhr in
Hallo zusammen,
irgendwie stecke ich bei einem an sich ganz einfachen Problem fest. Also ich habe ein Modul welches eine Textarea, ein Select Feld und eine weitere Textarea hat.
Nun will ich in der ersten Textarea etwas eingeben bspw. "Test"
Dann wähle ich aus dem Select Feld bspw. "reverse" aus
Und in der zweiten Textarea soll nach dem Submit das Wort "tseT" also "Test" rückwärts ausgegeben werden. Die Funktion dazu habe ich darum geht es mir nicht. Aber wie schaffe ich es, dass zweite Textfeld nach dem Submit zu füllen? Als Standard habe ich ich im Attribut "#default_value" aktuell "Ausgabe..." stehen. nach dem Submit müsste also die entsprechende Funktion "reverse" aufgerufen werden und die Ausgabe dann im Textareafeld reingeschrieben werden.
Wie mache ich das?
Vielen Dank vorab.
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst Du mal den Code zum
am 19.05.2015 - 14:47 Uhr
Kannst Du mal den Code zum Modul posten?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
//---------------------------
am 19.05.2015 - 14:54 Uhr
Hi,
hier der Code. Die einzelnen Funktionen habe ich nun nicht alle mitgepostet...
//------------------------------------
function hc_tools_multi_decoder_block_info() {
$blocks = array();
$blocks['hc_tools_multi_decoder'] = array(
'info' => t('Multi Decoder/Encoder'),
);
return $blocks;
}
function hc_tools_multi_decoder_block_view($delta = '') {
$block = array();
switch ($delta) {
case 'hc_tools_multi_decoder':
$content = array(
'form' => drupal_get_form('hc_tools_multi_decoder_form')
);
$block['content'] = $content;
break;
}
return $block;
}
function hc_tools_multi_decoder_form($form, &$form_state) {
$form['input'] = array(
'#type' => 'textarea',
'#cols' => 80,
'#rows' => 10,
'#resizable' => FALSE,
'#default_value' => 'Eingabe ...',
'#attributes' => array(
'class' => array(
'input-sm'
),
),
);
$form['action'] = array(
'#type' => 'select',
'#options' => array(
t('Atbash Cipher') ,
t('Caesar Bruteforce'),
t('Alphabet Encode') ,
t('Alphabet Decode') ,
t('Bacon Encode') ,
t('Bacon Decode') ,
t('Base64 Encode') ,
t('Base64 Decode') ,
t('Kenny Encode') ,
t('Kenny Decode') ,
t('URL Encode') ,
t('URL Decode') ,
t('Bin 2 Text') ,
t('Bin 2 Dec') ,
t('Dec 2 Text') ,
t('Hex 2 Text') ,
t('Morse 2 Text') ,
t('Text 2 Bin') ,
t('Text 2 Decimal') ,
t('Text 2 Hex') ,
t('Text 2 Morse') ,
t('Hash Calculator') ,
t('Char Counter') ,
t('Reverse') ,
t('Lowercase') ,
t('Uppercase')
),
);
$form['output'] = array(
'#type' => 'textarea',
'#cols' => 80,
'#rows' => 10,
'#resizable' => FALSE,
'#default_value' => 'Ausgabe ...',
'#attributes' => array(
'class' => array(
'input-sm'
),
),
);
$form['submit'] = array(
'#type' => 'submit',
'#attributes' => array(
'class' => array(
'btn-primary'
),
),
'#value' => t('Do it!')
);
return $form;
}
function hc_tools_multi_decoder_form_submit($form, &$form_state) {
switch($form_state['values']['action']) {
case "0":
break;
}
}
?>
Ich versuche es sonst nochmal
am 19.05.2015 - 17:43 Uhr
Ich versuche es sonst nochmal etwas einfacher. Ich möchte gerne wissen wie es möglich ist nach einem Form-Submit eine Textarea füllen zu lassen. Ich gebe also etwas in eine Textarea ein und nach dem Submit soll in einer anderen Textarea etwas rauskommen.
Du musst das $form_state beim
am 19.05.2015 - 20:19 Uhr
Du musst das $form_state beim laden der Form mit übergeben und dann in der Form auswerten ob etwas gesetzt ist. Wenn ja den default_value setzen.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Da die Daten inzwischen einen "roundtrip" machen
am 20.05.2015 - 08:00 Uhr
also zum Server und wieder zurück geschickt werden, musst du diesen Umstand abfangen (status des Formulares), und die Variable einschießen, falls es vorher einen POST gegeben hat.
Grüße
Ronald
Mmhh bin da leider immer noch
am 20.05.2015 - 08:49 Uhr
Mmhh bin da leider immer noch nicht weiter. Also ich habe jetzt mal das ausprobiert
function hc_tools_multi_decoder_form_submit($form, &$form_state) {
$form_state['complete form']['output']['#default_value'] = 'Test';
}
Da tut sich aber gar nichts. Kann mir vielleicht jemand einen Code posten wie ich nach einem Submit eine Ausgabe in einer Textarea realisiere?
-----------------------------------
Mir fällt gerade ein, kann es auch damit zusammenhängen dass ich die Form in einem Block untergebracht habe? Ich habe nämlich jetzt bei "Eingabe..." mal eine Eingabe gemacht (Test) und nach dem absenden steht da auch wieder "Eingabe...". Das ist ja nicht Sinn der Sache. Natürlich soll in meinem EIngabefeld auch nach dem absenden das drinstehen was ich eingetragen habe. Genauso soll bei meinem Select Feld auch das gewählt sein was ich ausgewählt habe. Aktuell setzt er nach dem Submit allerdings alles wieder zurück. Ich vermute das liegt daran, dass es ein Block ist?
Problem gelöst! Am Ende der
am 20.05.2015 - 10:15 Uhr
Problem gelöst! Am Ende der Submit Funktion fehlte
$form_state['rebuild'] = TRUE;
Jetzt funktioniert es. :)