Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP bufferovaní výstupu

Zdar ještě jednou a snad naposledy.

Mám poměrně rozsáhlý php skript, který generuje určitý výstup.

A já tento výstup potřebuji v systému umístit někam "dozadu".

Nebudu rozebírat podrobně důvody, které mě k tomuto vedou (jedná se o dočasnou tabulku, která v tom čase není dostupná).
Proto potřebuji do HTML prvku, který je generovaný již dříve doplnit poměrně složitý obsah (tlačítka, Java-skripty atd...)

Taktiku, kterou jsem si vyhlídl je následující:

1 ) Zabuferuji obsah výstupu do proměnné v PHP.

2 ) Tento obsah umístím po načtení stránky do konkrétního DIVu.

Metodu 2) Znám a vypadá takto:

<script>

$(document).ready(function() {
$('#boxuserdef_1').append(\'<? echo ob_end_flush();?> \');
</script>

Ovšem nevím, jak pozdržet obsah v PHP, aby se přestal posílat na výstup a poslal se až v bodě 2.

Důvodem, proč jsem se rozepsal, je , že možná někoho napadne to vymyslet lépe.

Pokud ne, prosím ukažte mi kód pro zapnutí bufferovaní a následně vystřelení bufferu v okamžiku, do místa kde potřebuji.

Předem díky i za to, že jste to vůbec četli. :-)

Předmět Autor Datum
Ja teda presne neviem o čo ide, ale ten DIV sa nedá na stránke skryť (hidden) a zobraziť ho až bude…
pme 01.09.2013 17:05
pme
Ne, ne. Takto. Systém se skládá z několika modulů. Modul pro generování hlavičky..... levého obsah… nový
Flash_Gordon 01.09.2013 17:11
Flash_Gordon
Přiznám se, že přesně nerozumím co potřebuješ, jelikož jsem hodně unavený. Ale z toho co jsem pochyt… nový
martin.developer 02.09.2013 20:00
martin.developer
Nakonec jsem to vyřešil ryze klientskou cestou: http://pc.poradna.net/q/view/1086267-jquery-dotaz-… poslední
Flash_Gordon 02.09.2013 22:36
Flash_Gordon

Ne, ne. Takto.

Systém se skládá z několika modulů.

Modul pro generování hlavičky..... levého obsahu, těla stránky atd.....
A já potřebuji dostat to, co se generuje až v čase modulu těla stránky do levého obsahu.
A levý obsah už je předem vygenerovaný (ale ne to co tam chci dodat).

Stačí mě příklad, jak pracovat s bufferingem php.

Vyzkoušel jsem:

ob_start("callback"); 

// dlouhý kód s echama


function callback($buffer)
{
  
  return ($buffer);
}


?>


<script>

$(document).ready(function() {
 $('#boxuserdef_1').append(\'
 <?
echo ob_end_flush();
?> \');
</script>

:-) CHápete, co tím básník chtěl říct...

Přiznám se, že přesně nerozumím co potřebuješ, jelikož jsem hodně unavený. Ale z toho co jsem pochytil - nebude řešení AJAX?

Načteš stránku kde bude nějaký

<div class="lazy-load" data-route="cool/module/url" id="placeholder"></div>

a potom až bude DOM ready, tak projedeš všechny .lazy-load a vyvoláš AJAX request na URL z data-route, na té URL provedeš danou akci/výstup a výstup vložíš do divu.

EDIT:

Jinak s bufferem se pracuje následovně

ob_start();

echo "foo";
echo "bar\n";

echo "Yup\n\n";

$buffer = ob_get_contents();

ob_end_clean();

// V $buffer máš výstup, který by normálně šel ke klientovi

Zpět do poradny Odpovědět na původní otázku Nahoru