[ 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 | 1
NapísalOffline : 20.03.2012 23:21 | HTML - AJAX - SVG

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 | 34
Bydlisko: Brno
NapísalOffline : 21.03.2012 7:02 | HTML - AJAX - SVG

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 | 1
Napísal autor témyOffline : 21.03.2012 10:10 | HTML - AJAX - SVG

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 | 34
Bydlisko: Brno
NapísalOffline : 24.03.2012 13:48 | HTML - AJAX - SVG

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 | 1
Napísal autor témyOffline : 24.03.2012 23:52 | HTML - AJAX - SVG

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 | 34
Bydlisko: Brno
NapísalOffline : 25.03.2012 10:26 | HTML - AJAX - SVG

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 | 1
Napísal autor témyOffline : 25.03.2012 20:33 | HTML - AJAX - SVG

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 | 34
Bydlisko: Brno
NapísalOffline : 25.03.2012 21:48 | HTML - AJAX - SVG

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 | 1
Napísal autor témyOffline : 25.03.2012 22:15 | HTML - AJAX - SVG

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.


 [ Príspevkov: 9 ] 


HTML - AJAX - SVG



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

594

12.12.2010 18:40

Ďuri

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

svg rotacia

v Ostatné

3

495

26.07.2012 15:14

venom2

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

SVG vykreslovanie v cecku

v Backend

12

849

19.06.2011 17:52

ice-g

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

WordPress a SVG obrazky

v CMS

3

467

17.12.2014 16:43

hatto13

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

AJAX refresh

v Frontend

0

1150

19.10.2008 11:20

max-m

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

ajax reload

v Backend

12

724

04.09.2012 19:22

Ďuri

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

Ajax manual

v Frontend

7

1360

27.05.2010 21:33

DARSON

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

php,ajax

v Backend

4

628

15.01.2012 22:45

shaggy

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

AJAX problem

v Frontend

2

650

07.05.2012 19:37

shaggy

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

ajax anketa

v Ostatné

4

1604

12.05.2007 20:56

javo

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

Ajax - help

v Frontend

2

394

06.11.2013 14:26

Qip

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

ajax guestbook

v Ostatné

0

11046

09.08.2007 22:25

javo

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

ajax standardy

v Frontend

1

787

12.05.2009 17:48

Ďuri

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

ajax jednoducha funkcia

v Frontend

7

616

24.04.2010 20:20

Ďuri

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

phpbb3 - Ajax Shoutbox

v CMS

0

952

30.12.2007 9:07

Mayo16

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

porovnanie casu ajax

v Frontend

2

532

04.12.2009 22:04

Blackdevil



© 2005 - 2026 PCforum, edited by JanoF