Autor Zpráva
maxAV
Profil
jde v JS neco jako v php $$promenna?

$promenna = "foo";
$$promenna = 1;

a pak bude plati ze $foo=1...
ah01
Profil
Jde to pomocí fce. eval.

var a = "b";
eval("var " + a + " = 123;");

alert(a);
alert(b);

to vytvoří proměnou b s hodnotou 123.

Ale rozhodně bych se této metodě snažil vyhnout. Určitě to pude vyřešit i bez použití téhle „ptákoviny“.
maxAV
Profil
Diky! To vypada fakt jako divna vec to delat takhle...
Chtel bych tim vyresit problem - mam 2 fce ktere se staraji o XMLHttpRequest. Ta ktera ho vytvari vsak muze byt samozrejme volana drive nez predchozi skonci. Tim padem se to 'zprasi'. No a pokud bych kazdej novej mohl pojmenovat predaneho parametru, mohl bych pouzivat jen tyhle 2 fce a nemusel delat dalsi uplne stejne pro jine requesty...


function ajaxAction(){
if (1){
if (window.ActiveXObject){
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
httpRequest = new XMLHttpRequest();
}
httpRequest.open("GET", link, true);
httpRequest.onreadystatechange= function () {processRequest("outputDiv"); } ;
httpRequest.send(null);
}
...

function processRequest(targetDiv){

if (httpRequest.readyState == 4)
{
if(httpRequest.status == 200)
{
var contentViewer = document.getElementById(targetDiv);
contentViewer.innerHTML = httpRequest.responseText;
}
else
{
alert("Error loading page\n"+ httpRequest.status +":"+ httpRequest.statusText);
}
}
}

Leo
Profil
A co treba pouzit (asociativni) pole? :-) Leo
maxAV
Profil
Neco jako

function ajaxAction(nazev){

httpRequest = new Array()

if (1){

if (window.ActiveXObject){

httpRequest[nazev] = new ActiveXObject("Microsoft.XMLHTTP");

}

else{

httpRequest[nazev] = new XMLHttpRequest();

}


???

ale co kdyz tu funkci zavolam vickrat - pole se bude pokazde znova inicializovat...
mozna se ptam fakt blbe, ale v JS jsem toho jeste moc nedelal...
maxAV
Profil
tak jsem pouzil globalni pole a funguje to v pohode, jen by me zajimalo, jak po skonceni requestu uvolnit pouzite pole.
Leo
Profil
Pole zlikvidujete napriklad tak, ze ho nadeklarujete znova pod stejnym nazvem, muzete mu nastavit length na 0, pouzit delete, atd. ale otazka je proc. Leo
PerToon
Profil
Když do něj načteš nový obsah, tak ho přemažeš. Takže není důvod ho vymazávat.
maxAV
Profil
no myslel jsem aby nechazelo k nejakymu nekontrolovanymu zrani pameti... nemam predstavu kolik takovej htttpRequest ukousne
Toto téma je uzamčeno. Odpověď nelze zaslat.

0