Dobrý den,
prosil bych o nasměrování, zda-li je možné v Drupalu ve formuláři převzít do pole nějakou hodnotu z jiného formuláře nebo gridu.
Co hledám, je funkcionalita z této stánky:
http://www.scriptcase.net/scriptcase-samples/php-form/capture-informati…
kde je možné kliknutím na obrázek lupy u pole Category převzít hodnotu, která se ukáže v gridu.
Věřím, že Drupal určitě bude také umět, ale nemohu (neumím) se na to správně zeptat, abych našel postup, jak vyřešit.
Děkuji za jakoukoliv odpověď
M.Klinger
Děkuji za nasměrování.
Mám nyní vytvořený formulář A, který u jednoho z políček má odkaz:
$link = Link::fromTextAndUrl(t('Link title'), $url )->toString();
- ten otevře jiný modální formulář B. Nyní řeším, jak "převzít" hodnotu z modálního formuláře B a umístit ji do formuláře A.
1) u metody formuláře B submitForm, nastavit hodnotu argumentu. Tu si pak přes $_GET načíst u formuláře A, do kterého si chci údaj načíst.
$url = Url::fromRoute('mydata.mydata_form', [
'arg1' => "value1",
'arg2' => "value2",
]);
$form_state->setRedirectUrl($url);
2) submitForm - uložit do $_SESSION[]
3) nebo byste věděl něco vhodnějšího?
U obou variant 1) a 2) je ten problém, že pokud formulář A již obsahoval nějaká vyplněná pole, tak při zavolání formuláře B o ně přijdu. Je možné nějak uložit data formuláře A před zavoláním linku a formuláře B? A po převzetí dat zase obnovit hodnoty do formuláře A?
Snad bude stačit zase naťuknout, jako se Vám to povedlo v minulé odpovědi:)
Děkuji za Váš čas.
M.Klinger
Postoupil jsem zase dál, resp. jiným směrem. Přes AJAX a "tlačítko" formuláře A, otevřu modální formulář B:
$form['open_modal'] = [
'#type' => 'link',
'#title' => $this->t('Open Modal'),
'#url' => Url::fromRoute('modal_form_example.open_modal_form'),
'#attributes' => [
'class' => [
'use-ajax',
'button',
],
],
];
Co ale zůstává nevyřešeno, neumím, je jak při (před) zavolání modální formuláře B, uložit již některá pořízená data formuláře A.
Zdravím, to je asi otázka JavaScriptu, ne? Mělo by na to stačit trošku jQuery.