Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: 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
-
A ktery IE to mate? Aby vubec mel podporu SVG.
-
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
-
No a byla by ukazka kodu a na jakem radku to hlasi ten "udenfined index"?
-
No a byla by ukazka kodu a na jakem radku to hlasi ten "udenfined index"?
jQuery/Ajax:
....
$( "#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:
$post_data = $_POST["structureSVG"];
//zkusil jsem take:
$post_data = isset($_POST["structureSVG"]) ? $_POST["structureSVG"] : "SVG not found";
Undefined Index: structureSVG in on line .....
-
Tu chybu hlásí IE na klientovi (js) nebo PHP na serveru?
-
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.
-
Tu chybu hlásí IE na klientovi (js) nebo PHP na serveru?
vrati se mi to na klienta v Response
-
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
-
Tu chybu hlásí IE na klientovi (js) nebo PHP na serveru?
vrati se mi to na klienta v Response
Takze to haze PHP?
-
Takze to haze PHP?
pokud je to v response na klientovi, usuzuju logicky, ze to prislo z PHP, ovsem v logu apache nic nevidim
-
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?
-
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?
-
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.
-
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() ?
-
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.
-
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
-
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
-
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