Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.03.12
Prihlásený: 26.03.12
Príspevky: 5
Témy: 1
Príspevok NapísalOffline : 20.03.2012 23:21

Caute
Chcem sa spytat ci je mozne cez select tlacitko atd. ktore je na stranke (html subor) zmenit napriklad farbu SVG objektu vytvoreneho pomocou AJAXu? Teda ak mam tri subory html, js, svg. Viem ze ajax v pohode funguje v spojeni s html ci uz su v jednom subore alebo mam v html subore odkaz na ajaxovy subor, ale ak chcem rovnako nastavit aby sa cez funkciu menila farba svg objektu tak to proste nechce fungovat.


Offline

Čestný člen
Čestný člen
HTML - AJAX - SVG

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 21.03.2012 7:02

Asi nieco robis zle, len to z toho popisu nie je celkom dobre poznat, lebo asi nemas presne predstavu, co presne Ajax je. Daj odkaz na zivu ukazku.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.03.12
Prihlásený: 26.03.12
Príspevky: 5
Témy: 1
Príspevok Napísal autor témyOffline : 21.03.2012 10:10

No ide o to ze nic podobne som nikde na nete nenasiel myslim ako spojenie HTML - AJAX - SVG ale napisem zdrojaky vsetkych suborov ako mam.

svg_ajax.svg
Kód:
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="makeShape(evt)">
<script type="text/javascript" xlink:href="kruh.js"/>
</svg>


kruh.js
Kód:
var xhr = vytvorXHR();
function vytvorXHR(){
    var xhr;
    try{
      xhr = new XMLHttpRequest();
    }catch(e){//pro případ starší verze prohlížeče
      var MSXmlVerze = new Array('MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.5.0','MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp.2.0','Microsoft.XMLHttp');
      for(var i = 0; i <= MSXmlVerze.length; i ++){
        try{
          xhr = new ActiveXObject(MSXmlVerze[i]);
         //alert(MSXmlVerze[i]);
          break;
        }catch(e){
          //vzniklou chybu ignoruji a pokračuji nastavením další verze
        }
      }
    }
    if(!xhr)
      alert("Došlo k chybě při vytváření objektu XMLHttpRequest!");
    else
      return xhr;
}

function prectiSoubor(){
if(xhr){
  try{
    xhr.open("GET",url,true);
    xhr.onreadystatechange = ctiOdpoved;
    xhr.send(null);
  }catch(e){
    alert("Nelze se připojit k serveru:\n" + e.toString());
  }
}else{
  alert("Funkce \"precitSoubor()\": chybí objekt XMLHttpRequest");
}
}

function ctiOdpoved(){
  if(xhr.readyState == 4){
    if(xhr.status == 200){
      try{
        var XMLRes = xhr.responseXML;
        //zachycení chyb IE a Opery
        if(!XMLRes || !XMLRes.documentElement){
          throw("Chybná struktura XML:\n"+xhr.responseText);
        }
        //zachycení chyb firefox
        var rootNodeName = XMLRes.documentElement.nodeName;
        if(rootNodeName == "parsereerror"){
          throw("Chybná struktura XML:\n"+xhr.responseText);
        }
      }catch(e){
        alert("Chyba při čtení odpovědi:"+e.toString());
      }
    }else{
      alert("Požadavek HTTP není v pořádku.")
    }
  }
}

var svgns = "http://www.w3.org/2000/svg";

function makeShape(evt) {
    if ( window.svgDocument == null )
        svgDocument = evt.target.ownerDocument;

    var shape = svgDocument.createElementNS(svgns, "circle");
    shape.setAttributeNS(null, "cx", 25);
    shape.setAttributeNS(null, "cy", 25);
    shape.setAttributeNS(null, "r",  20);
    shape.setAttributeNS(null, "fill", "green");
   
    svgDocument.documentElement.appendChild(shape);
}


Toto vsetko mi v pohode bezi vykresli sa kruh ak si prezriem svg subor. No a teraz napisem zdrojak html suboru ako mam.

ajax1.html
Kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns= "http://www.w3.org/1999/xhtml" xml:lang="sk">
 <head>
  <meta http-equiv="content-type" content="aplication/xhtml+xml; charset=windows-1250" />
  <title>AJAX</title>
 </head>
   
<body>

<script type="text/javascript" src="kruh.js"></script>

<input type="button" value="Zobraz" onclick="">
<br>
<embed src="svg_ajax.svg" width="200" height="200" type="image/svg+xml" />

</body>
</html>


Na onclick nemam priradenu ziadnu funkciu pretoze nic mi nefungovalo ked som sa pokusal o nieco. Ale nejak takto na stlacenie tlacidla alebo cez select menu je vobec mozne aby sa zmenila farba alebo iny parameter vykreslovaneho kruhu v svg?


Offline

Čestný člen
Čestný člen
HTML - AJAX - SVG

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 24.03.2012 13:48

Stale nerozumiem, preco spominas Ajax, ty tie Ajaxove funkcie vobec nepouzivas a bola by to celkom hovadina. Mozes vlozit SVG obrazok do HTML dokumentu <object>om miesto <embed>u a ziskas pristup k SVG dokumentu pomocou DOM atributu <object>.contentDocument a nemusis ani pre fciu makeShape definovat ziadny argument.

Neuvazoval si o priamom vlozeni SVG do hlavneho dokumentu? Ak by si pouzival skutocne XHTML, tak to spravis klasicky mixovanim namespacov, alebo ak ti nevadi nefunkcnost vo Firefoxe 3.x, mozes zapisat SVG aj do HTML dokumentu.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.03.12
Prihlásený: 26.03.12
Príspevky: 5
Témy: 1
Príspevok Napísal autor témyOffline : 24.03.2012 23:52

Mne je jasne ze je mozne SVG dat rovno do HTML a nepotrebujem k tomu AJAX ale to menis potom atributy uz vytvoreneho SVG dokumentu. AJAXom sa da robit aj dynamicke SVG no a mne islo to ci je mozne nejako to dat dohromady. Pri tomto priklade to vyzera ako hovadina ale ja riesim vacsi problem co sa tyka grafu vykreslovaneho pomocou AJAXu do SVG ale som len chcel na takomto malom priklade zistit ze ci je vobec mozne urobit nieco take ze pri stlaceni tlacidla sa zmeni napr. parameter ktory udava farbu objektu vo funkcii makeShape.

Ak som natvrdo definoval: var farba = "blue" a potom vo funkcii makeShape namiesto shape.setAttributeNS(null, "fill", "green"); bolo shape.setAttributeNS(null, "fill", farba); tak to fungovalo no ak som uz pouzil var farba = document.getElementById("tlacidlo").value pricom tlacidlu som samozrejme dopisal id="tlacidlo" a do value som dal "blue" a vo funkcii bolo znova shape.setAttributeNS(null, "fill", farba); tak vykresleny kruh mal defaultnu farbu teda ciernu.


Offline

Čestný člen
Čestný člen
HTML - AJAX - SVG

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 25.03.2012 10:26

Robis chybu niekde inde, z toho, co si napisal, by malo vsetko fungovat. Keby si poslal aktualne zdrojove kody, na ktorych mozem presne zreprodukovat problem (idealne ako odkaz na zivu ukazku), bolo by to fajn.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.03.12
Prihlásený: 26.03.12
Príspevky: 5
Témy: 1
Príspevok Napísal autor témyOffline : 25.03.2012 20:33

Mozno robim len neviem ze kde lebo hej malo by to fungovat ale proste sprava sa to programatorsky nelogicky alebo jak by som to nazval.

Tu je odkaz na stranku kde tie subory mam ulozene teraz to nie je nastavene na kliknutie tlacidla ale je to tak ze uz pri nacitani stranky by sa mala farba kruhu zmenit na modru, no kruh je stale cierny:

http://omega.tuke.sk/student/peter.mihok/dp/JavaScript_Ajax/ajax/

A len na pripomenutie ak natvrdo do zdrojaku v kruh.js napisem var farba = "blue"; tak to funguje.


Offline

Čestný člen
Čestný člen
HTML - AJAX - SVG

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 25.03.2012 21:48

Aj si si skusil otvorit Firebug alebo ine developer tools v hocijakom prehliadaci? V case, ked ony Javascript bezi, este nie je nacitany cely dokument a preto ma document.getElementById("tlacidlo") hodnotu null. Mozes napriklad cakat na nacitanie celej stranky:
Kód:
window.onload = function() {
   //cely kod, ktory bezi, az ked je web nacitany
};


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.03.12
Prihlásený: 26.03.12
Príspevky: 5
Témy: 1
Príspevok Napísal autor témyOffline : 25.03.2012 22:15

No neskusal som ziaden developer tools ale napadlo ma ze hodnota document.getElementById("tlacidlo").value bude null tak som este skusil dat v HTML <script type="text/javascript" src="kruh.js"></script> uplne na koniec ale aj tak mi to nefungovalo.

No a k tomu co si poslal window.onload ... tebe to funguje? lebo ja jak skusam tak skusam ale kruh sa mi teraz uz ani nezobrazi.


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. SVG editor

v Grafické programy

1

464

12.12.2010 18:40

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. svg rotacia

v Ostatné

3

387

26.07.2012 15:14

venom2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SVG vykreslovanie v cecku

v Assembler, C, C++, Pascal, Java

12

763

19.06.2011 17:52

ice-g Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. WordPress a SVG obrazky

v Redakčné systémy

3

351

17.12.2014 16:43

hatto13 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. AJAX refresh

v JavaScript, VBScript, Ajax

0

1048

19.10.2008 11:20

max-m Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ajax reload

v PHP, ASP

12

576

04.09.2012 19:22

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ajax manual

v JavaScript, VBScript, Ajax

7

1240

27.05.2010 21:33

DARSON Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php,ajax

v PHP, ASP

4

546

15.01.2012 22:45

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. AJAX problem

v JavaScript, VBScript, Ajax

2

508

07.05.2012 19:37

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ajax anketa

v Ostatné

4

1512

12.05.2007 20:56

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ajax - help

v JavaScript, VBScript, Ajax

2

306

06.11.2013 14:26

Qip Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ajax guestbook

v Ostatné

0

1149

09.08.2007 22:25

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ajax standardy

v JavaScript, VBScript, Ajax

1

655

12.05.2009 17:48

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. porovnanie casu ajax

v JavaScript, VBScript, Ajax

2

452

04.12.2009 22:04

Blackdevil Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ajax posielanie udajov

v JavaScript, VBScript, Ajax

7

789

14.04.2009 21:07

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. AJAX - vratenie pola

v JavaScript, VBScript, Ajax

9

502

26.02.2010 15:46

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra