var q = [];
for (var i = 0; i < 32; i++){
q[i] = document.getElementById('qty[i]').value;
}
q
will contain all of your values. You should declare the array q
outside of your for loop, as that's the commonly accepted best practice. If you don't declare q
at all, it will be come an implied global variable, something that you probably want to avoid. If you declare q
inside your loop, it will get overridden each iteration, so you need to make sure you declare it outside.
Also, you'll note that I changed your for
loop from this:
for(i = 1; i <= 32; i++) {
To this:
for (var i = 0; i < 32; i++){
You're looping from 1 to 32; this is incorrect, as arrays in Javascript are 0-indexed; in other words, they start counting from zero. Since this is the case, your for
loops also need to start counting at zero, and end at 31. Also, you'll want to declare the var i
in your for loop; otherwise, it will become a global variable.
Now, if you really really didn't want to declare q
outside of your for loop, you could do what Kirian demonstrated; that is, use an if
statement to determine if q
has already been declared, and if not, declare it. That would look like this:
for (var i = 0; i < 32; i++){
if(!q) q = [];
q[i] = document.getElementById('qty[i]').value;
}
And another note, if qty
is an array in your code then you probably want this instead:
var q = [];
for (var i = 0; i < 32; i++){
q[i] = document.getElementById(qty[i]).value;
}
If instead qty
is part of a set of IDs that look like qty[1], qty[2], qty[3]...
, then you want this:
var q = [];
for (var i = 0; i < 32; i++){
q[i] = document.getElementById('qty[' + i + ']').value;
}