Získaní HTML struktury do proměné – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Získaní HTML struktury do proměné – JavaScript, AJAX, jQuery – Fórum – Programujte.comZískaní HTML struktury do proměné – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

ZAJDAN0
Newbie
16. 8. 2013   #1
-
0
-

Ahoj,

netušíte jak získat kompletní HTML strukturu do proměné a tu následně odeslat přes $.post či $.get ?
zkouším to takto:

<input type="submit" id="export-pdf" value="CREATE PDF" name="submit">
<script>
$('input#export-pdf').click(function(){
var html = document.documentElement.outerHTML;
var data = { html: html };
$.post("create.php", data);
});
</script>

v create php si odchytávám délku získané proměné, ale nic...jaky by ji vůbec nezískal:

<?php
$html = $_POST['html'];
echo strlen($html);
var_dump($_REQUEST);
?>

0array(0) { }

Nahlásit jako SPAM
IP: 109.107.211.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
16. 8. 2013   #2
-
0
-

Nesmysl - tu strukturu měj již na serveru v proměnné - odesílej jen jaká proměnná byla vybrána...

Nahlásit jako SPAM
IP: 78.136.150.–
ZAJDAN0
Newbie
17. 8. 2013   #3
-
0
-

#2 Matěj Andrle
tak tuto radu vůbec nechápu

ta page je na klient side a server vůbec o žádné proměné neví

Nahlásit jako SPAM
IP: 78.156.128.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
17. 8. 2013   #4
-
0
-

Pokud chceš něco odesílat na server, tak počítám s tím, že máš nějaký server. Tedy asi by to bez něj nešlo. (žádný web) Tak na tom serveru měj proměnné s požadovaným obsahem. Formulářem jen vybereš serverovou proměnnou, kterou má použít k tomu, k čemu chceš... Ale je kravina posílat serveru dlouhatánský text, když mu můžeš poslat jen název proměnné, kterou má použít...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
17. 8. 2013   #5
-
0
-

Jak můžeš na serveru vygenerovat html a nepředat mu serverové informace?

Nahlásit jako SPAM
IP: 78.136.150.–
ZAJDAN0
Newbie
18. 8. 2013   #6
-
0
-

příklad:

server1(nad ním nemáme kontrolu) vygeneruje page, která je vyrenderovaná na client side a odtud ji v celé své podobě chci odeslat na server2(který mohu ovládat) a z této page poté na serveru 2 vygeneruju PDF

Nahlásit jako SPAM
IP: 78.156.128.–
ZAJDAN0
Newbie
18. 8. 2013   #7
-
0
-

#5 Matěj Andrle
serverové informace?...co míníš serverovýma informacema?

jak navrhuješ držet si na serveru vše v proměných a jen ty patřičné potom vybírat a odesílat je dobrý nápad, ale aby jsi pochopil o co mi jde popíšu to přesněji:
na serveru mi běží také phantomJS, který mimo jíné umí z požadované URL vytvořit PDF bez nutnosti specifikovat css a komedie kolem toho...prostě veme page na kterou ho nasměrujete a ofotí ji do PDF tak jak je.
Na jednom portále mi beží konfigurátor ve formě formuláře, kde si přes checkboxy naklikate co chcete a nasledným submitem se na straně klienta zobrazí finální výběr i s obrázky každé vybrané položky. Celá tato stránka se vyrenderuje dle css a získá tak potřebný layout a přesně v této podobě bych tu stránku přes zmíněného phantoma vyrenderoval do PDF a tak mne napadlo ji přeposlat zpět na server kde naslouchá phantom a tak získat PDF naprosto stejné jako vyrenderovaná page bez toho aniž bych musel do phantoma psát definice css apod. 

Nahlásit jako SPAM
IP: 78.156.128.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
18. 8. 2013   #8
-
0
-

Proč by server 2 nemohl vygenerovat stejnou strukturu jako ten první? Neposílej celou strukturu, posílej data, která bude server2 potřebovat k vybrání/vytvoření požadované struktury.

Pokud nějak na serveru vygeneruji HTML, stačí do něj dosadit serverové proměnné - echo "<p>$promenna</p>", nebo - echo "<script>var promenna = $promenna;</script>", echo <<<END ... END; atd. Rozhodně bych nikdy mezi 2 servery neposílal takové obludnosti jako SOAP atp. Zvlášť když jako v tomto případě - se nabízí jednoduché řešení...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
18. 8. 2013   #9
-
0
-

Pokud tě stále nechápu, tak jdi do SOAP - víc udělat nelze...

Nahlásit jako SPAM
IP: 78.136.150.–
ZAJDAN0
Newbie
18. 8. 2013   #10
-
0
-

#8 Matěj Andrle

ano přesne toto já dělám, že do HTML šablony dle podmínek dosadím proměné

server má formulář, kde všechny položky obsahují Value (jak jinak že), a ten se nakonec celý odešle submitem na PHP soubor(result.php) , který si naplní proměné právě dle těchto Value:
$deep = $_POST['deep'];
$sockel = $_POST['sockel'];

atd
dle podmínek pak dosazuje co bylo vybráno: 

if ($sockel == "STD" && $abteilen == "1") {
echo '
<div class="outputForm" style="width:260px; height:180px; border-width: 1px; border-style: solid; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; ">
<div class="outputFormText">SOCKEL: ' . $sockel . '</div>
<div class="outputFormImage">
<img src="/images/cabinets-de/parts/outputForm/sockel/100/SO-STD-100-1.svg" >
</div>
</div>

';
}

else if ($sockel == "GIRO" && $abteilen == "1") {
echo '
<div class="outputForm" style="width:260px; height:180px; border-width: 1px; border-style: solid; -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px;">
<div class="outputFormText">SOCKEL: ' . $sockel . '</div>
<div class="outputFormImage">
<img src="/images/cabinets-de/parts/outputForm/sockel/100/SO-GIRO-100-1.svg" >
</div>
</div>
';
}

atd atd.....
takže když phantomJs pro export page do PDF nasměruju na http://server_IP/result.php
nebude vědět co si uživatel vybral a získá jen šablonu(kde jsou sice všechny proměné), ale jaká byla dosazena nezjistí, protože to se vyrenderovalo, až po tom co uživatel udělal z formuláře submit.
Toto byl a je důvod, proč chci stránku kterou vidí jen uživatel vrátit zpátky na server a zpracovat.

Nahlásit jako SPAM
IP: 78.156.128.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
19. 8. 2013   #11
-
0
-

Tak teď mi tu píšeš, že ti stačí proměnné - tak posílej jen je...

Nahlásit jako SPAM
IP: 78.136.150.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
19. 8. 2013   #12
-
0
-

$sockel == "GIRO" && $abteilen == "1"

Proč nedáš "switch($sockel)" do podmínky "if ($abteilen == "1")"?

Nahlásit jako SPAM
IP: 78.136.150.–
ZAJDAN0
Newbie
19. 8. 2013   #13
-
0
-

to ale stejně neřeší moji potřebu, kterou jsem zmiňoval
switchem jen zjednoduším zápis php šablony
já vím kam mě směruješ.....odkázat phantmJs na šablonu php, která na serveru je(není potřeba ji znova posílat) a do ní jen poslat proměné, které byli zvoleny uživatelem ve formuláři, ale stále mi není jasné jak to tímto způsobem předat pro phantomJS, tak aby zpracovával už jen výslednou page a ne šablonu

Nahlásit jako SPAM
IP: 78.156.128.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
19. 8. 2013   #14
-
0
-

Ano - narážel jsem na stavbu kódu - nic víc.

Vygeneruješ to do něj ze serveru - ne? Já stejně zbrojím proti webkitům, enginům atd. Většinou je to o pohodlnosti atd. Tedy většinou by se to dalo vyřešit jednodušeji, efektivněji atd.

Psal jsem ti to od začátku. Posílej prostě jen proměnné - ne výsledek, který dostaneš po dosazení proměnných...

Nahlásit jako SPAM
IP: 78.136.150.–
ZAJDAN0
Newbie
19. 8. 2013   #15
-
0
-

#14 Matěj Andrle

nejsem profi programátor, ale vždy to co potřebuji si sanžím pomoci sám.  Mám rád nezavislost a to už začíná u OS a tak už několik let používám Linux. V tom jsme si podobní, pač já ty enginy, webkity apod taky nerad. Ovšem v případě generování html pouhým ofocením HTML page neexistuje nic lepšího než zmiňovaný engine phantomJs. V tomto případě opravdu nemám jednoduchou alternativu. 

Nahlásit jako SPAM
IP: 78.156.128.–
Matěj Andrle
~ Anonymní uživatel
1347 příspěvků
19. 8. 2013   #16
-
0
-

Já ti mohu poradit jen s tím, s čím jsem poradil. Psal jsem, co nesnáším proto, že nemohu být v tomto řešení konkrétnější. Čily jak na to jsem napsal - posílej jen data, ze kterých jsi schopen na sekundárním serveru vytvořit požadovaný výsledek... Pokud nenajdeš řešení, které by ti to umožnilo posílat pouze ony parametry, navrhl jsem SOAP...

Jinak Linux neposkytuje takovou svobodu jako Unix, či prostě OS, který si sám postavíš. Tedy nejen Unix (BSD, UnixWare, Minix) si musíš postavit. Jsou i Linuxy - Crux, Arch,... Doporučuji ti tedy přejít do jednoho z nich. A ještě lépe uděláš, když jako já - přejdeš do konzolového shellu.

Nahlásit jako SPAM
IP: 78.136.150.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý