Autor | Zpráva | ||
---|---|---|---|
novacek90 Profil |
#1 · Zasláno: 2. 9. 2013, 13:55:54
Ahoj,
začal jsem dělat objektově a mám takový problém. Mám formulář, kde chci po jeho úspěšném odeslání aby se mi zobrazil jiný .tpl ale nevím, protože tak jak to mám teď řešené, tak mi to zobrazí dva .tpl soubory. <?php require_once '../lib/common.php'; $page = new Page; try { $poptavka = new PoptavkaEdit; } catch(Exception $e) { logErrorOrder('Poptavka: '.$e->getMessage()); } if(!empty($_POST)) { try { $poptavka->setJmeno($_POST['jmeno']); $poptavka->setPrijmeni($_POST['prijmeni']); $poptavka->setTelefon($_POST['telefon']); $poptavka->setEmail($_POST['email']); $poptavka->setAdresa($_POST['adresa']); $poptavka->setPoznamka($_POST['poznamka']); $poptavka->setTypLemu($_POST['lem']); $poptavka->setUpravaLemu($_POST['uprava_lemu']); $poptavka->setBazen($_POST['bazen']); $poptavka->setVelikostA($_POST['velikost_a']); $poptavka->setVelikostB($_POST['velikost_b']); $poptavka->setVelikostC($_POST['velikost_c']); $poptavka->setVelikostD($_POST['velikost_d']); $poptavka->setSchody($_POST['schody']); $poptavka->setBarva($_POST['barva']); $poptavka->setDatum(date("Y-m-d H:i:s")); $poptavka->setModified(''); $poptavka->setStatus(STATUS_NEW); $poptavka->setNewCisloPoptavky(); $poptavka->store(); // odkaz na třídu pro odeslání e-mailu?? v mymailer.class.php??? // ANO !! :D // MyMailer::sendPoptavkaSupplier($poptavka); $page->assign("info",'Poptávka byla odeslána.'); // zobrazí v cenova-nabidka.tpl kde si to vytáhnu přes SMARTY $page->display("odeslano.tpl"); // po úspěšném odeslání zobraz odeslano.tpl a ne cenova-nabidka.tpl $poptavka = new PoptavkaEdit; } catch(Exception $e) { $page->assign("error",$e->getMessage()); } } $page->assignTitle('Cenová nabídka'); // naplnime smarty udajema o poptávce $poptavka_smarty['jmeno'] = $poptavka->outJmeno(); $poptavka_smarty['prijmeni'] = $poptavka->outPrijmeni(); $poptavka_smarty['telefon'] = $poptavka->outTelefon(); $poptavka_smarty['email'] = $poptavka->outEmail(); $poptavka_smarty['adresa'] = $poptavka->outAdresa(); $poptavka_smarty['poznamka'] = $poptavka->outPoznamka(); $poptavka_smarty['typ_lemu'] = $poptavka->outTypLemu(); $poptavka_smarty['uprava_lemu'] = $poptavka->outUpravaLemu(); $poptavka_smarty['bazen'] = $poptavka->outBazen(); $poptavka_smarty['velikost_a'] = $poptavka->outVelikostA(); $poptavka_smarty['velikost_b'] = $poptavka->outVelikostB(); $poptavka_smarty['velikost_c'] = $poptavka->outVelikostC(); $poptavka_smarty['velikost_d'] = $poptavka->outVelikostD(); $poptavka_smarty['schody'] = $poptavka->outSchody(); $poptavka_smarty['barva'] = $poptavka->outBarva(); $page->assign("poptavka",$poptavka_smarty); switch($_GET["type"]) { case 'klasik': $page->assignTitle("Cenová nabídka KLASIK"); break; case 'klasik_dlouhy': $page->assignTitle("Cenová nabídka KLASIK dlouhý"); break; case 'max': $page->assignTitle("Cenová nabídka MAX"); break; case 'basic': $page->assignTitle("Cenová nabídka BASIC"); break; } $page->assign('type',$_GET["type"]); $page->display("cenova-nabidka.tpl"); //stránka s formulářem ?> Asi nemůžu mít použité dvakrát $page->display("") . Jinak chtěl bych to nějak vyřešit z důvodu SEO, aby mi formulář zůstával stále na jedné adrese.
Díky za rady |
||
Kutil Profil * |
#2 · Zasláno: 4. 9. 2013, 10:58:58
hm, "rychlé a hnusné" řešení by bylo:
- na řádek 6 přidej $isSuccesPage = false;
- za řádek 44 přidej $isSuccessPage = true;
- a místo řádku 88 dej if($isSuccessPage) { $page->display("cenova-nabidka.tpl"); } //stránka s formulářem
PS: k objektovému kódu tohle má daleko. Objektový kód neznamená, že začneš používat třídy, ale že aplikaci dáš vnitřní strukturu, rozdělíš zodpovědnost tříd a celé to deklarativně provážeš dohromady... |
||
Časová prodleva: 11 let
|
0