Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Javascript globalna varijabla

[es] :: Javascript i AJAX :: Javascript globalna varijabla

[ Pregleda: 1825 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Javascript globalna varijabla08.09.2010. u 09:12 - pre 165 meseci
Pozdrav,
mozete li mi pomoci posto sa javascriptom bas nisam na ti :)

Dakle imam neku funkciju koja cita iz xml-a

Code:
 function parseXml(xml)
{
 $(xml).find("Records").each(function()
{
  var MojUrl = $(this).find("MojUrl").text()
});
}
});


E sad kako bi ja najlakse mogao dobiti ovu varijablu MojUrl kao neku "globalnu" varijabllu da je mogu koristiti u drugim funkcijama.

Dakle odmah zatim imam neku drugu funkciju di bi mi trebala ta varijabla


Code:
function ProvjeriUrl(str)
{
.
.
  }
xmlhttp.open("GET", MojUrl +"provjeri.asp");
xmlhttp.send();
}



Uf nadam se da ste skuzili :)
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.telekom.rs.



+104 Profil

icon Re: Javascript globalna varijabla08.09.2010. u 09:31 - pre 165 meseci
Još uvek persiram javascriptu, ali ovo bi trebalo da je ovako (samo izbaciš deklaraciju promenljive van funkcije) :)

Code:

var MojUrl ;

 function parseXml(xml)
{
 $(xml).find("Records").each(function()
{
  MojUrl = $(this).find("MojUrl").text()
});
}
});
function ProvjeriUrl(str)
{
.
.
  }
xmlhttp.open("GET", MojUrl +"provjeri.asp");
xmlhttp.send();
}




Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript globalna varijabla08.09.2010. u 09:54 - pre 165 meseci
jedno od pravila dobrog programiranja (i to ne samo u javascriptu) je izbegavati globalne promenljive. recimo, zasto ta funkcija parseXml jednostavno ne bi vratila taj url sto procita?

npr:
Code (javascript):

function parseXml(xml) {

 var mojUrl = '';

 $(xml).find("Records").each(function() {
    mojUrl = $(this).find("MojUrl").text()
  });

  return mojUrl;
}
 


i onda to koristis ovako:
Code (javascript):

function ProvjeriUrl(str) {
 .
 .
 .
 xmlhttp.open("GET", parseXml(str) +"provjeri.asp"); // pretpostavljam da ti str parametar predstavlja taj xml
 xmlhttp.send();
}
 


inace ona prva fja bi trebala da moze i ovako da se napise (mada ne znam tacnu strukturu xml-a, a i iskreno nisam nikada pomocu jquery-ja parsirao xml, ali pretpostavljam da treba to da radi kao i sa HTMLDocument-om):
Code (javascript):

function extractURL(xmlString) {
   return $(xmlString).find('Records MojUrl').text();
}
 

 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: Javascript globalna varijabla08.09.2010. u 10:26 - pre 165 meseci
Evo ovo je cijela skripta pa ako pomogne. Bas sam tutlek za javascript, a ovo bi mi trebalo :(

Code:


var WebUrl = '';

$(function()
{
  $.ajax({
    type: "GET",
    url: "param.xml",
    dataType: "xml",
    success: parseXml
  });  


function parseXml(xml)
{
  $(xml).find("Records").each(function()
  {
    WebUrl = $(this).find("WebUrl").text(); 

});
}
});




function Provjeri(str)
{
if (str=="")
  {
  document.getElementById("UserError").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("UserError").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET", WebUrl + "provjeri.asp?url="+str,true);
xmlhttp.send();
}

 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript globalna varijabla08.09.2010. u 11:29 - pre 165 meseci
1. nigde ne pozivas Provjeri funkciju, samo si je definisao
2. nema potrebe da u toj funkciji imas proveru browsera jer vec koristis jQuery za ajax

evo probaj ovako nesto:
Code (javascript):

$(function() {
  $.ajax({
    type: "GET",
    url: "param.xml",
    dataType: "xml",
    success: function(xml) {
      $.get('provjeri.asp', {url: $(xml).find('Records WebUrl').text()}, function(result) {
        $('#UserError').text(result);
      });
    }
  });  
});
 


samo vodi racuna da ti server taj param.xml fajl servira sa text/xml content-type headerom. vise o tome procitaj ovde: http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: Javascript globalna varijabla08.09.2010. u 11:38 - pre 165 meseci
Ma ja tu funkciju Provjeri pozivam sa druge stranice, a ovu "globalnu" varijablu bi htio nekako dobiti da je mogu koristit u drugim funkcijama.
Kada napisem

var WebUrl = 'http://mojurl.com'

onda sve sljaka i ja je mogu procitat iz xml datoteke, ali ne znam kako da je onda odvojim da mi je i ostale funkcije vide.

Btw sve se funkcije nalaze u jednoj datoteci - moja.js
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript globalna varijabla08.09.2010. u 12:07 - pre 165 meseci
kako mislis pozivas je sa druge stranice? cak i globalna promenljiva je globalna samo za tu stranicu, cim odes na drugu pozdravi se sa svime sto ti je bilo u globalnim promenljivama :)

Citat:
var WebUrl = 'http://mojurl.com'

a to ti radi samo zato sto si time definisao konstantu (tacnije svaki put promenljivoj WebUrl dodeljujes konstantu 'http://mojurl.com') tako da ti je na svakoj strani ta promenljiva inicijalizovana sa tom vrednoscu
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: Javascript globalna varijabla08.09.2010. u 12:48 - pre 165 meseci
Ma OK :) Kazem da bas nisam sa javascriptom.
Dakle ovako:

Imam funkciju

Code:

var WebUrl = '';

$(function()
{
  $.ajax({
    type: "GET",
    url: "param.xml",
    dataType: "xml",
    success: parseXml
  });  


function parseXml(xml)
{
  $(xml).find("Records").each(function()
  {
    WebUrl = $(this).find("WebUrl").text(); 

});
}
});


Kako da sada sa tom ili nekom slicnom funkcijom dobijem neku globalnu varijablu za tu stranicu.
Dakle na toj stranici (mojaskripta.js) se nalaze i druge funkcije u kojima bi htio upotrebiti tu varijablu (value od te varijable) koju sam izvukao preko ove gore funkcije.

Sa ovim trenutno napisanim ne dobivam nikakav value za tu varijablu.

Kada bi unutar ove funkcije "parseXml" dodao jos npr. alert(webUrl) sve sljaka, ali kako da taj value dobijem da je mogu koristiti ostale funkcije.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Javascript globalna varijabla08.09.2010. u 12:54 - pre 165 meseci
pa rekoh ti, vrati tu vrednost preko return, tako ti ne treba globalna promenljiva, samo gde ti treba taj podatak pozoves tu funkciju i imas vrednost koja ti treba (mada, tu bi valjalo koristiti neko kesiranje, ali to sad bespotrebno komplikuje kod)
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: Javascript globalna varijabla08.09.2010. u 15:01 - pre 165 meseci
Riješio :)

Puna hvala na odgovorima!
 
Odgovor na temu

[es] :: Javascript i AJAX :: Javascript globalna varijabla

[ Pregleda: 1825 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.