Autor | Zpráva | ||
---|---|---|---|
janek007 Profil |
Zdravím,
měl bych takový dotaz, který sice vím čím je zapříčiněn, ale zajímalo by mě, jestli existuje nějaké obecně používané řešení. mám soubor index.php kde si načtu přes include sobor config.php kde se includujou další php soubory s funkcema např. pro připojení do MySQL. pak mám include hlavičky, souboru s obsahem podle zvolené stránky a patičky. Právě v hlavičce mám jquery funkci na fulltext dynamické vyhledávání, kde se živě zobrazují výsledky odpovídající začátku. A právě tady je ten problém, jelikož jquery.load volám konkrétn php soubor a né index chybí mu ty funkce které se volají v index.php. Jak to nějak elegantně pořešit? Mě jako lajka napadá založit proměnnou $config a testovat jí na hodnotu true a pokud nebude, tak znovu načíst soubor config.php. index.php require(__DIR__ . "/config.php"); if ($_GET["o"]) { $o = $_GET["o"]; } else { $o = "recepty"; } include(__DIR__ . "/inc/header.php"); ?> <div class="article"> <?php include(__DIR__ . "/page/$o.php"); ?> </div> <p class="pages"><small>Stránka 1 z 2</small> <span>1</span> <a href="#">2</a> <a href="#">»</a></p> <?php include(__DIR__ . "/inc/footer.php"); ?> script v header na živé vyhledávání <script> $(document).ready(function(){ $("#editbox_search").click(function(){ if ($(this).val() == "Vyhledat recept:") { $(this).val(""); } }); $('#editbox_search').keyup(function() { $(".article").empty(); $(".article").load("page/recepty.php?s=" + $(this).val()); }); }); </script> Děkuji |
||
juriad Profil |
janek007:
Jednoduché řešení: přidej potřebné includy do recepty.php. Složité řešení: přesměruj všechny dotazy na index.php, který na začátku nastartuje samotnou aplikaci (tím myslím provede všechny potřebné includy, zajistí konfiguraci) a následně podle typu dotazu/parametrů deleguje práci na některý ze skriptů, který může a nemusí vypsat hlavičku a patičku. Ty skripty dokonce můžou na výstup třeba vypisovat jen JSON, ze kterého v JS nabídku vyhledávání sestavíš. Použitím .htaccess můžeš zajistit, že nikdo nepozná, že vše obsluhuje jen index.php. |
||
janek007 Profil |
#3 · Zasláno: 5. 5. 2016, 11:19:14
U mě to tak je, že vše obsluhuje jen index.php, přes ?o parametr se vkládá příslušný php soubor s obsahem. To pro to, abych všechny includy měl jen v jednom souboru a nemusel se o ně starat v každém soboru zvlášť. Jedinou vyjímku jsem tedy udělal v souboru recepty.php kde si testuju proměnnou $setup na true a když není provedu znovu require soboru config.php. To mi vyřešilo problém.
Lépe a jednodušeji to asi udělat nejde, že? Mysle jsem, jestli třeba někde nejde nastavit nějaký autorequire který by si php načítalo automaticky samo. |
||
Keeehi Profil |
#4 · Zasláno: 6. 5. 2016, 02:41:50
janek007:
Existuje autoload ale pro třídy. |
||
Časová prodleva: 9 let
|
0