Problém s redirectem jen v IE
- MW
- Člen | 626
Zdravím,
narazil jsem na zahadny problem a nevim, jak na nej. Prosim o pomoc.
Mam dva formulare vedle sebe. Po kliknuti na urcite odesilaci tlacitko formu se dle podminky ve zpracovani zavola metoda a nastavi flash a redirectne zpet. Na druhem puvodnim formu, vse OK.
Plan byl premistit tlacitko do formu nad.(to ten test) a tam to proste nefunguje.
Podminka se splni, metoda zavola a provede, ale misto presmerovani IE visi dalsi minutu, pak presmeruje, ale bez flashmessage.
Tedy v prvnim formu to trva o minutu dele a redirect je bez flashe.
Jo pokud zakomentuju v prvnim formu volani one metody generateData(), tak se to presmeruje v poradku.
Netusi nebo nevidi nekdo, jaky je rozdim v prvnim a druhem formu?
Jo a Mozzila to nedela.. ta projede v poho.. chapal bych to, ale proc to IE dela jen v prvnim formu.
Diky a tady je kod:
Tedy prvni form, tlacitko test vola generateData() a nefunguje redirect a
flashmsg,
druhy, tlacitko generate vola generateData() a funguje jak ma.
protected function createComponentYear($name) {
$form = new Form($this, $name);
$form->addGroup('Výnosy ze správy')
->setOption('container', Nette\Utils\Html::el('fieldset')->class("green"));
$form->addSelect('year', 'Rok:', $this->getYears(1))
->setDefaultValue(date('Y'))
->setPrompt('Zvolte rok')
->setRequired('Zvolte rok');
$form->addSubmit('celkem', "Roční přehled\nvýnosů - celkem");
$form->addSubmit('obecni', "Roční přehled\nvýnosů - Obecní");
$form->addSubmit('soukrome', "Roční přehled\nvýnosů - Soukromé");
$form->addSubmit('dluhy', "Roční přehled\npohledávek")
->getControlPrototype()->style(array('width' => '115px', "background" => 'lightgreen'));
$form->addSubmit('test', "TEST");
$form->onSuccess[] = array($this, "yearSubmit");
}
function yearSubmit($form) {
$values = $form->values;
if ($form['celkem']->isSubmittedBy()) {
...
} elseif ($form['obecni']->isSubmittedBy()) {
...
} elseif ($form['soukrome']->isSubmittedBy()) {
...
} elseif ($form['dluhy']->isSubmittedBy()) {
...
} elseif ($form['test']->isSubmittedBy()) {
$this->context->invoicesModel->generateData($values->year); // pokud toto zakomentuju, redirect projede OK.
$this->flashMessage('Generování dokončeno 2 ');
$this->redirect('this', (array) $values);
} else {
$this->redirect('this', (array) $values);
}
$this->year = $values->year;
}
protected function createComponentImport($name) {
$form = new Form($this, $name);
$form->addGroup('Import z MRP')
->setOption('container', Nette\Utils\Html::el('fieldset')->class("red"));
$form->addSelect('year', 'Rok:', $this->getYears(1))
->setDefaultValue(date('Y'))
->setPrompt('Zvolte rok')
->setRequired('Zvolte rok');
$form->addSelect('source', 'Zdroj:', $this->getSources())
->setPrompt('Zvolte zdroj dávky')
->setRequired('Zvolte zdroj');
$form->addUpload('file');
$form->addSubmit('import', "Spustit import")
->getControlPrototype()->data['confirm'] = ("Import bude proveden pro zadaný rok a zdroj !\n");
$form->addSubmit('generate', "Generovat výnosy pro zadany rok");
$form->onSuccess[] = array($this, "importSubmit");
}
function importSubmit($form) {
$values = $form->values;
if ($form['import']->isSubmittedBy() AND $values->file->size > 0) {
... // prace se souborem
$this->redirect('this');
} elseif ($form['generate']->isSubmittedBy()) {
$this->context->invoicesModel->generateData($values->year); //projede vzdy i s redirectem
$this->flashMessage('Generování dokončeno');
$this->redirect('this', (array) $values);
} else {
$this->flashMessage('Nestalo se nic ...');
$this->redirect('this', (array) $values);
}
}
- MW
- Člen | 626
Asi jsem na to prisel !?
Pokud pridam do prvniho formu addUpload, tak to funguje.
Tedy, prida to k formu enctype=„multipart/form-data“ a IE akceptuje delsi zpracovanu formu?
Napada Vas nekoho proc to tam IE musi mit?
A jak pridam samotne enctype=„multipart/form-data“ k formu, prosim.
Diky !
- MW
- Člen | 626
Jine pc, stejne chovani.
IE 9.
Script trva cca 40 vteřin. Pokud tam neni uoload, provede se take do
40 vterin (poznam podle databaze a vytvari to jeste log, takze to je ok) ale IE
jeste ceka cca minitu. Pak se presmeruje bez flasmsg… napada me, jestli
nedojde ke ztrate session.
Ale ten addUpload to fakt vyresi :D
Ted jsem to udelal pres ajax… ale stejne by me zajimalo, co to je za problem.
Diky !