R8X-VIBE



 
AcasaPortalCautareMembriInregistrareConectare

Distribuiţi | 
 

 Variabile dinamice in JavaScript

Vezi subiectul anterior Vezi subiectul urmator In jos 
AutorMesaj
Digitalboy
ADMINISTRATOR
ADMINISTRATOR
avatar

Mesaje : 1394
Data de inscriere : 11/03/2010

MesajSubiect: Variabile dinamice in JavaScript   Mier Noi 10, 2010 4:19 pm

1. Creare variabile dinamice
Variabilele dinamice sunt variabile care nu au fost setate special în script, nu au un nume dinainte definit ci este dinamic, numele fiind preluat și alcătuit cu un șir din altă sursă (de exemplu un formular).
JavaScript nu are implementat special variabile dinamice (precum, de exemplu PHP), dar pot fi folosite diferite metode pentru a ajunge la același rezultat, și anume: un șir preluat dintr-o sursă separată să devină denumirea, sau parte din numele unei variabile.
Pot fi folosite două metode: cu "eval()" sau cu "window".
Iata câte un exemplu cu fiecare, din care puteți întelege cum pot fi obținute variabile dinamice în JS (explicațiile necesare, amănunțite, sunt în cod).
I) - Cu eval()

Cod:
<script type="text/javascript"><!--
// 1. Cu eval

// Se seteaza o variabila care va avea ca valoare un sir
// Acel sir va deveni el insusi o variabila sau parte din numele alteia
var vari1 = 'val';

// Cu "eval()" se defineste valoarea lui "vari1" ca variabila si i-se atribue o valoare
// Acum exista o variabila val
eval("var "+vari1+"= 'Valoarea variabilei dinamice - val';");

alert(val);          // Se testeaza rezultatul (ce returneaza noua variabila obtinuta)

// Sau ca parte componenta a numelui
eval("var pre_"+vari1+"= 'Parte componenta din nume - pre_val';");// Acum exista o variabila pre_val
alert(pre_val);          // Testare ce returneaza noua variabila pre_val
//--></script>
II) - Cu window
Cod:
<script type="text/javascript"><!--
// 2. Cu window (keie in array)

// Se seteaza o variabila care va avea ca valoare un sir
// Acel sir va deveni el insusi o variabila sau parte din numele alteia
var vari2 = 'val2';

// Cu "window" se defineste valoarea lui "vari2" ca o cheie in Array si i-se atribue o valoare
// Acum va exista o variabila val2
window[vari2] = 'Valoare a lui - val2';

alert(val2);          // Testare ce returneaza noua variabila val2

// Sau ca parte componenta a numelui
window['pre_'+vari2] = 'Valoarea lui - pre_val2'; // Acum exista o variabila pre_val2
alert(pre_val2);          // Testare ce returneaza noua variabila pre_val2
//--></script>
2. La ce folosesc variabilele dinamice
Variabilele dinamice nu sunt neapărat necesare, mai ales în JavaScript, se poate scrie orice script și fără ele, iar pentru începători e indicat să evite folosirea lor. Sunt utile în anumite cazuri (pt. avansați) deoarece pot face mai mic și mai dinamic codul scriptului.
Iată un exemplu în care se poate vedea o mică utilizare a variabilelor dinamice.
Să presupunem, că o parte a unui script mai mare, că valoarea aleasă dintr-o casuță Select dintr-un formular trebuie să devină numele unei variabile, iar valoarea ei să fie textul din dreptul acelui Select.
Codul pt. acest exemplu este următorul:
Cod:
<script type="text/javascript"><!--
// Se seteaza functia ce va fi apelata de Select
function exemplu_vd(val3) {
    // Se defineste, cu metoda "window", valoarea lui 'val3' ca parte din numele unei variabile
    // I-se atribue ca valoare textul din optiunea aleasa
    window['vd_'+val3] = document.getElementById(val3).innerHTML;

    alert('Variabila - vd_'+ val3+ ' - are valoarea: '+ eval("vd_"+val3));         
// Se testeaza printr-o fereastra alert rezultatul
    // - Functia eval() evalueaza numele de variabila rezultat deoarece aceasta nu e dinainte cunoscuta
}
//--></script>

<form action="" method="post">Alege optiune:
  <select name="select" onchange="exemplu_vd(this.value)">
    <option id="s1" value="s1">Optiune 1</option>
    <option id="s2" value="s2">Optiune 2</option>
    <option id="s3" value="s3">Optiune 3</option>
  </select>
</form>
Sus In jos
Vezi profilul utilizatorului http://r8x-vibe.forumz.ro
 
Variabile dinamice in JavaScript
Vezi subiectul anterior Vezi subiectul urmator Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
R8X-VIBE :: Programare :: JAVA-
Mergi direct la: