Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN 14. 10. 2016, 10:30:20

Název: Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 10:30:20
Ahoj...
potýkám se s problémem:
Ajaxem posílám data z formuláře a společne s tím i SVG, vše funguje správně v Chrome, Opera, Vivaldi, Firefox, ale opět únavný Internet Explorer(Trident) nezpracuje proměnou, kde je SVG(vše ostatní ano). IE hlásí zprávu Undefined index:

neřešili jste někdy stejný problém?
díky
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: JardaP . 14. 10. 2016, 12:20:05
A ktery IE to mate? Aby vubec mel podporu SVG.
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 12:33:51
A ktery IE to mate? Aby vubec mel podporu SVG.
IE 11
nejde o podporu SVG, protoze samotne SVG se zobrazí správně, v tom problem neni, spise to vypada, ze ma problem Ajaxem poslat to SVG na server(PHP) ke zpracovani
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ehmmm 14. 10. 2016, 13:31:24
No a byla by ukazka kodu a na jakem radku to hlasi ten "udenfined index"?
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 13:42:01
No a byla by ukazka kodu a na jakem radku to hlasi ten "udenfined index"?

jQuery/Ajax:
Kód: [Vybrat]
....
 $( "#createPDF" ).click(function(event) {
                                event.preventDefault();
                                var svg = document.getElementById("svg");
                                var svgElement = svg.contentDocument;
                                var svgpic = svgElement.getElementById("svg-g6e100");
                                var structureSVG = svgpic.outerHTML;
                                 ......
                                 ......

                             $.ajax({
                                                type:'POST',
                                                url: '/pdf/configuration-create-pdf.php',
                                                data: { structureSVG: structureSVG }

                                  ..........
PHP:
Kód: [Vybrat]
$post_data = $_POST["structureSVG"];
//zkusil jsem take:
$post_data = isset($_POST["structureSVG"]) ? $_POST["structureSVG"] : "SVG not found";

Undefined Index: structureSVG in on line .....
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: dustin 14. 10. 2016, 13:59:19
Tu chybu hlásí IE na klientovi (js) nebo PHP na serveru?
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: JardaP . 14. 10. 2016, 14:00:07
Na ruznych mistech se pise o problemech jQuery s IE. Treba tady: http://stackoverflow.com/questions/20326285/ajax-data-not-passed-to-php-correctly-only-in-internet-explorer . Ale je to dost stare, tak evim,jestli to porad plati. Ale u MS spousta veci plati hodne dlouho a nekdy take plati po nejakem casu znovu.
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 14:07:20
Tu chybu hlásí IE na klientovi (js) nebo PHP na serveru?
vrati se mi to na klienta v Response
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 14:08:42
Na ruznych mistech se pise o problemech jQuery s IE. Treba tady: http://stackoverflow.com/questions/20326285/ajax-data-not-passed-to-php-correctly-only-in-internet-explorer . Ale je to dost stare, tak evim,jestli to porad plati. Ale u MS spousta veci plati hodne dlouho a nekdy take plati po nejakem casu znovu.
ten prohlizec IE by meli zakazat, s tim je leta trapeni...stale a stale
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: DK 14. 10. 2016, 14:22:20
Tu chybu hlásí IE na klientovi (js) nebo PHP na serveru?
vrati se mi to na klienta v Response

Takze to haze PHP?
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 14:25:04
Citace
Takze to haze PHP?
pokud je to v response na klientovi, usuzuju logicky, ze to prislo z PHP, ovsem v logu apache nic nevidim
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: NooN 14. 10. 2016, 15:37:12
A uz si niekedy pouzil nieco ako napr. Fiddler (https://www.telerik.com/download/fiddler (https://www.telerik.com/download/fiddler)) aby si vedel kde co lieta?
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 14. 10. 2016, 15:49:25
A uz si niekedy pouzil nieco ako napr. Fiddler (https://www.telerik.com/download/fiddler (https://www.telerik.com/download/fiddler)) aby si vedel kde co lieta?
pouzivam debugger v browseru...fiddler je neco vic?
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: borekz 14. 10. 2016, 18:22:54
pouzivam debugger v browseru...fiddler je neco vic?
Co já vím, Fiddler je hlavně pro sdílení spustitelných ukázek na inernetu, místo vkládání kódu do diskuzního příspěvku. Ale v tomto případě by to ještě chtělo phpfiddle.
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: cleb 15. 10. 2016, 10:42:36
Zkoušel jste do atributu structureSVG nacpat něco jiného? Jako

{ structureSVG: 'test' } - funguje to potom?

Co říká var_dump ($_POST) ?

Když už tam stejně máte jQuery, nebude to fungovat lépe s $("svg-g6e100").html() ?


Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: NooN 16. 10. 2016, 18:18:37
pouzivam debugger v browseru...fiddler je neco vic?
Co já vím, Fiddler je hlavně pro sdílení spustitelných ukázek na inernetu, místo vkládání kódu do diskuzního příspěvku. Ale v tomto případě by to ještě chtělo phpfiddle.
Fiddler ti odchytava komunikaciu medzi serverom a klientom, takze vidis co ti kde lieta.
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 17. 10. 2016, 10:40:47
Zkoušel jste do atributu structureSVG nacpat něco jiného? Jako

{ structureSVG: 'test' } - funguje to potom?
pokd zkusim toto v IE, tak to v debuggeru->response vidim to co tam skutecne je, ale IE to svg nechce pro PHP predat spravne
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: Tomas2 17. 10. 2016, 12:46:50
outerHTML ti u svg v IE nevrátí nic, SVG totiž není html a nemůžeš k němu takhle přistoupit, v tom je celý problém. Hodnota, kterou dostaneš je undefined a na server se takový klíč v jsonu nepošle, proto ti php vyhazuje undefined index, což bys mimochodem měl ošetřovat.

Řešení můžeš vyčíst z tohohle snippetu, ač není vhodné takhle upravovat objekty v js, může ti to stačit:
https://gist.github.com/jarek-foksa/2648095

SVGElement je v tvém případě svgpic
Název: Re:Internet Explorer nezpracuje data předaná Ajaxem
Přispěvatel: ZAJDAN 17. 10. 2016, 13:17:30
outerHTML ti u svg v IE nevrátí nic, SVG totiž není html a nemůžeš k němu takhle přistoupit, v tom je celý problém. Hodnota, kterou dostaneš je undefined a na server se takový klíč v jsonu nepošle, proto ti php vyhazuje undefined index, což bys mimochodem měl ošetřovat.
super..tak tato rada mě paradně pomohla...díky tomu objasnění jak se chová IE
hned mě napadlo ten zachycený DOM ze SVG prohnat pres .serializeToString(oDOMNode)
a uz to valí!
díky moc