Originariamente inviato da 83kiara83
codice:
<script type="text/javascript">
var prova=new Array();

prova['a'] = 0;
prova['b'] = 0;
prova['c'] = 0;
prova['d'] = 0;
prova['e'] = 0;


function salva()
{
alert(prova['a']);
}
function cambia()
{
prova['a'] = 1;
}
...
A mio avviso il problema deriva dal fatto che nella funzione "cambia", di fatto stai cercando di definire una nuova array locale impostandola ad 1. Infatti per definire una variabile non è strettamente necessario usare la chiave "var".
Così facendo, nella funzione "salva()" visualizzi l'array globale che è però ancora impostata a zero.

Suppongo che tu abbia necessità di avere una soluzione al problema.
La soluzione stà nel passare alla funzione "cambia()", l'array globale come parametro.
Quando un array viene infatti passato come parametro, la modalità di trasmissione è sempre per "riferimento"; in tal caso,quindi,i valori dell'array, se modificat dal sottoprogramma chiamato, avranno effetto sul chiamante.

Per cui:

cambia(prova);
salva();

function cambia(A)
{
A['a'] = 1;
}


Un'altra piccola osservazione:
Sei sicura che nel valorizzare gli elementi dell'array non ti confondi con la sintassi del PHP?
Voglio dire che per quel che ne sò, in javascript, per far riferimento ad un elemento dell'array si utilizza sempre e solo un indice numerico.
Nel PHP ci sono anche gli indici associativi per cui l'indice non è necessariamente numerico.