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)


var namen = new Array("kees","pietje","klaasje");

if(in_array(ingegevennaam, namen)) {
alert("Naam is aanwezig");
}


Dat werkt prima.

Nu heb ik de code uitgebreid met meerdere arrays:

var namen1 = new Array("sjaak", "boudewijn");
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:
document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value


Vervolgens probeer ik dat te combineren maar dat lukt dus niet:

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
kan niet omdat het een array is
Dan zou je het zo moeten doen van te voren

namen[] = document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value;

if(in_array(ingegevennaam, namen)) {
of zie ik het verkeerd wat je wilt?
Je moet zorgen dat het in 1 array komt!
Ik heb een array functie:

function in_array(string, array) {
 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 :
namen[] = document.forms.multiform.level.options[document.forms.multiform.level.selectedIndex].value;


toevoeg zegt hij syntaxisfout bij teken 12 is tussen []
namen[] kan niet. Dan zou je het zo moeten doen:
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.


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. 



Zoiets misschien
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.
Waarom maak je niet een array van arrays?


var namen = [
    ['sjaak', 'boudewijn'], 
    ['hans'],
    ['kees', 'pietje', 'klaasje']
];

if (in_array(ingegevennaam, namen[nummer - 1])) {
    alert('Naam is aanwezig');
}
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

Reageren