Javascript vraag - het combineren van gegevens tot een bestaande variabele
Ik heb een javascript probleempje. Ik probeer 2 "waardes" 1 te laten worden. Ik kan het het beste uitleggen door het te laten zien. Mijn oorspronkelijke code was (voorbeeld)
Dat werkt prima.
Nu heb ik de code uitgebreid met meerdere arrays:
Op basis van een in een formulier gekozen waarde via select bv 1 of 2 of 3 moet hij de juiste array kiezen.
De verwijzing naar de formulier waarde is:
Vervolgens probeer ik dat te combineren maar dat lukt dus niet:
Met PHP kan ik prima overweg maar hoe doe ik dit nu met Javascript. Heb als met ""eromheen geprobeert en [] en ++ etc. Wie kan met helpen ?
Vr groet,
Hall
Code (php)
1
2
3
4
5
2
3
4
5
var namen = new Array("kees","pietje","klaasje");
if(in_array(ingegevennaam, namen)) {
alert("Naam is aanwezig");
}
if(in_array(ingegevennaam, namen)) {
alert("Naam is aanwezig");
}
Dat werkt prima.
Nu heb ik de code uitgebreid met meerdere arrays:
Code (php)
1
2
3
2
3
var namen1 = new Array("sjaak", "boudewijn");
var namen2 = new Array("hans");
var namen3 = new Array("kees","pietje","klaasje");
var namen2 = new Array("hans");
var namen3 = new Array("kees","pietje","klaasje");
Op basis van een in een formulier gekozen waarde via select bv 1 of 2 of 3 moet hij de juiste array kiezen.
De verwijzing naar de formulier waarde is:
Code (php)
1
document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value
Vervolgens probeer ik dat te combineren maar dat lukt dus niet:
Code (php)
1
if(in_array(ingegevennaam, namen+document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value)) {
Met PHP kan ik prima overweg maar hoe doe ik dit nu met Javascript. Heb als met ""eromheen geprobeert en [] en ++ etc. Wie kan met helpen ?
Vr groet,
Hall
Gewijzigd op 19/05/2010 17:36:26 door B a s
kan niet omdat het een array is
Dan zou je het zo moeten doen van te voren
Dan zou je het zo moeten doen van te voren
Code (php)
1
2
3
2
3
namen[] = document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value;
if(in_array(ingegevennaam, namen)) {
if(in_array(ingegevennaam, namen)) {
Gewijzigd op 19/05/2010 14:19:16 door Niels Verwegen
of zie ik het verkeerd wat je wilt?
Je moet zorgen dat het in 1 array komt!
Je moet zorgen dat het in 1 array komt!
Ik heb een array functie:
Was ik vergeten te vermelden.
Verder als antwoord. Het moeten meerdere array's blijven. Dus daar zoek ik niet de oplossing. Maar ik zal is even proberen of ik iets met je antwoord kan.
Zojuist gedaan. Als ik :
toevoeg zegt hij syntaxisfout bij teken 12 is tussen []
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
function in_array(string, array) {
for (i = 0; i < array.length; i++) {
if(array[i] == string) {
return true;
}
}
return false;
}
for (i = 0; i < array.length; i++) {
if(array[i] == string) {
return true;
}
}
return false;
}
Was ik vergeten te vermelden.
Verder als antwoord. Het moeten meerdere array's blijven. Dus daar zoek ik niet de oplossing. Maar ik zal is even proberen of ik iets met je antwoord kan.
Zojuist gedaan. Als ik :
Code (php)
1
namen[] = document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value;
toevoeg zegt hij syntaxisfout bij teken 12 is tussen []
Gewijzigd op 19/05/2010 17:36:51 door B a s
namen[] kan niet. Dan zou je het zo moeten doen:
namen[namen.length] = ...
namen[namen.length] = ...
hmm is waar ook, het is immers geen php.
Dan zou je een functie moeten maken waar in je alles een voor een in de andere array zet , net zoiets als je functie nu.
Zoiets misschien
Dan zou je een functie moeten maken waar in je alles een voor een in de andere array zet , net zoiets als je functie nu.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
var namen = new Array("kees","pietje","klaasje");
function add_in_namen(array) {
for (i = 0; i < array.length; i++) {
namen[namen.length] = array[i];
}
}
//hier zou de array namen dan groter moeten zijn.
function add_in_namen(array) {
for (i = 0; i < array.length; i++) {
namen[namen.length] = array[i];
}
}
//hier zou de array namen dan groter moeten zijn.
Zoiets misschien
Gewijzigd op 19/05/2010 15:18:27 door Niels Verwegen
Ik heb het op de volgende manier opgelost:
var nummer = document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value;
if (nummer == 1) {
actievenamen = namen1;
}';
if (nummer == 2) {
actievenamen = namen2;
}';
etc
etc
if(in_array(ingegevennaam, actievenamen)) {
alert("Naam is aanwezig");
}
Dit werkt maar je zou zeggen dat er toch een kortere manier moet wezen.
var nummer = document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value;
if (nummer == 1) {
actievenamen = namen1;
}';
if (nummer == 2) {
actievenamen = namen2;
}';
etc
etc
if(in_array(ingegevennaam, actievenamen)) {
alert("Naam is aanwezig");
}
Dit werkt maar je zou zeggen dat er toch een kortere manier moet wezen.
Waarom maak je niet een array van arrays?
Ja dat kan inderdaad denk ik wel op die manier. Had ik in php wel bedacht maar ja in javascript werkt het allemaal net even anders en dan kom ik er niet uit.
Bedankt
Hall
Bedankt
Hall




