Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [javascript] array bidimensionali

    ciao a tutti
    ho creato un array bidimensionale in questo modo:

    ing_tipo_2 = new Array();
    ing_tipo_2[0] = new Array('82','43','96');
    ing_tipo_2[1] = new Array('Arista di maiale','Faraona','Fegatini di pollo');

    ora vorrei provare a scorrerlo per assegnare val e text a una select:

    for(var i = 0; i < ing_tipo_2[0].lenght; i++) {
    document.form1[miaSelect].options[i].value = ing_tipo_2[0][i];
    document.form1[miaSelect].options[i].text = ing_tipo_2[1][i];
    }

    da errore e non capisco deve sbaglio

    grazie 1000
    M

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Mi pare che manchi un elemento:

    Se 'miaSelect' e` il nome proprio della select:

    document.form1.elements['miaSelect'].options[i].value = ing_tipo_2[0][i];

    oppure:

    document.form1.miaSelect.options[i].value = ing_tipo_2[0][i];

    Se invece miaSelect e` una variabile che contiene il nome della select:
    document.form1.elements[miaSelect].options[i].value = ing_tipo_2[0][i];


    Similmente per il text.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    grazie sembra che vada bene ma ho un piccolo problema con il for

    for(var i = 0; i < mioArray[0].lenght; i++) {

    }

    come posso riscriverlo se mioArray è una variabile che contiene il nome dell'array (ricorda che è un'array di array :-))?

    grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E` corretto come lo avevi inserito nel primo post (e come lo proponi ora con variabili diverse).

    Infatti fai il loop su tutti gli elementi della matrice piu` interna.

    Io avrei fatto una matrice di N elementi ognuno con due elementi (e` piu` semplice un'eventuale aggiunta o modifica), ma anche il tuo metodo e` corretto. Basta che ti capisci da te. JS non fa differenze di stile.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    eppure non mi torna.
    ho una serie di array pronti all'uso... una funzione decide quale devo usare

    function ing (nome) {
    arrayDaUsare = 'arr' + nome;

    }

    se faccio
    alert(arrayDaUsare);
    ok, mi dice quale sto usando

    invece
    alert(arrayDaUsare[0].length)
    dice undefined

    .................

    gli array sono costruiti come indicato nel primo messaggio

    thanx

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    perchè in quel momento è una stringa,
    se la variabile arrayDaUsare è globale (esiste al di fuori di funzioni)

    for(var i=0;i<window[arrayDaUsare][0].length;i++){
    document.form1.elements[miaSelect].options[i].value = window[arrayDaUsare][0][i];
    document.form1.elements[miaSelect].options[i].text = window[arrayDaUsare][1][i];
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Stai facendo confusione fra oggetti e nome degli oggetti.

    arrayDaUsare = 'arr' + nome; // salva il nome nella variabile (stringa)

    alert(arrayDaUsare); // stampa il nome (stringa)

    var oggArr = eval(arrayDaUsare); // trasforma nome in oggetto

    oggArr[0][i] // puntatore ad un elemento.

    Nota: la funzione eval() e` deprecata in qualche modalita` d'uso, anche se ancora supportata da tutti i browser in circolazione. Potrebe non funzionare in qualche browser futuro. Il problema e` che non ho trovato un elemento document.arrays[] che potrebbe sostituirlo.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    MITICO...! funziona

    e grazie anche per le spiegazioni ora è piu chiaro

    ciao
    M

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.