ho molti pezzi di codice come:
<script type="text/javascript">
dojo.query("body").delegate("#input0 > select.estatistica", "onchange", function(evt){
dojo.xhrPost({
url: "drop2.php",
handleAs: "json",
postData: "data=" + $(this).val(),
preventCache: true,
load: function(json) {
$m0 = [];
for (var i = 1; i < 10; i++) {
$m0.push(parseFloat(json[i]["valor" + i]));
}
dojo.addOnLoad(refreshChar0);
}
});
});
</script>
<script type="text/javascript">
dojo.query("body").delegate("#input1 > select.estatistica", "onchange", function(evt){
dojo.xhrPost({
url: "drop2.php",
handleAs: "json",
postData: "data=" + $(this).val(),
preventCache: true,
load: function(json) {
$m1 = [];
for (var i = 1; i < 10; i++) {
$m1.push(parseFloat(json[i]["valor" + i]));
}
dojo.addOnLoad(refreshChart1);
}
});
});
</script>
ho provato questo loop, ma non sono sicuro della sceneggiatura. Probabilmente ho errori di sintassi.
<script type="text/javascript">
for(x=0; x<10; x++) {
dojo.query("body").delegate(""#input"+x+"> select.estatistica"", "onchange", function(evt) {
dojo.xhrPost({
url: "drop2.php",
handleAs: "json",
postData: "data=" + $(this).val(),
preventCache: true,
load: function(json) {
$m+x = [];
for (var i = 1; i < 10; i++) {
$m+x.push(parseFloat(json[i]["valor" + i]));
}
dojo.addOnLoad(refreshChart+x);
}
});
});
}
</script>
Grazie
risposte:
0 per risposta № 1per creare dinamicamente un nome di variabile devi usare la notazione parentesi
per esempio: this["$m"+x]
o window["$m"+x]
creerà una variabile chiamata $m1
dove x = 1
provare:
window["foo" + "bar"] = "hello";
alert(foobar);
0 per risposta № 2
A quanto pare $m+x
"Immagino che tu stia provando a creare dinamicamente una variabile come $m0
a $m9
basato sull'iterazione da 0 a 10. Non puoi farlo in Javascript per quanto ne so, ti darà un errore. Suggerisco invece di creare una sorta di variabile dinamica perché non riempire i valori all'interno di un array in base agli indici di x
.
Ecco qualcosa:
var $m = [];
for(x=0; x<10; x++)
{
// some of your codes here ...
// make $m[x] an array
if (typeof $m[x] == "undefined")
$m[x] = [];
// some of your codes here...
for (var i = 1; i < 10; i++)
{
// of course you need to change this to what you need to push
$m[x].push(i);
}
}
console.log($m[0]); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Quindi in poche parole $m
sarà un array con array. Non so se la mia ipotesi è giusta, ma spero che dia un'idea.