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

    Memorizzare indice di una matrice

    Ho una funzione che incremeta l'indice di una matrice.
    Quello che io vorrei è che ogni volta che viene richiamata la funzione venga incremetato l'indice.
    Se dichiaro l'array ogni volta all'interno della funzione mi azzra gli indici, se la dichiaro fuori dalla funzione mi considera l'array solo la prima volta.

    Come posso fare?

    Spero di essere stato chiaro

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    vettore[vettore.length] = valore;

    oppure

    vettore.push(valore);
    Pietro

  3. #3
    Quello che mi hia indicato tu sbaglio o serve per incrementare di uno l'indice del vettore?
    Il mio problema è che mi funziona solo una volta, vorrei che ogni volta che viene richiamata la funzione il vettore aumenti l'indice senza partire da zero ma che continui dal valore precedente

    Cioè se la funzione viene richiamato 10 volte devo avere un vettore con 10 indici e non perdere il contenuto all'esterno della funzione.

    Questo è il codice che ho scritto

    codice:
    matcodicipadri=new Array();
    function aggiungi() {
    	matcodicipadri=matcodicipadri.push('1');
    	alert(matcodicipadri);
    }
    La prima volta mi visualizza 1 e poi non compare più l'alert
    spero di essermi spiegato meglio

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non e' chiaro cio' che ti serve... devi incrementare l'indice o aggiungere un nuovo elemento? e nel secondo caso, che valore dovrebbe avere l'elemento?

    forse:

    var indice=0;
    var matrice = new Array();
    function aggiungi() {
    matrice[indice] = ++indice;
    alert(""+matrice.length+" "+indice+" "+matrice[indice-1])
    }
    for (i=0;i<10;i++) aggiungi();


    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Grazie,
    si avvicina molto a quello che volevo.

    Io ho una matrice con tre colonne e un numero di righe che aumenta ogni volta grazie a questa funzione che viene richiamata da un link.

    Quindi questa funzione deve aggiungere una riga alla matrice e come valori devo inserire il valore di tre campi di testo presenti in un form.
    I campi sono: codice, quantità e data.

    Con il codice che mi hai indicato incremeto l'indice però devo aggiungere la nuova riga, però non so come fare

    Spero di essere stato più chiaro

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Matrice, riga... non e' che stai parlando anche di una tabella in visualizzazione?

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Si poi dovrei visualizzare il contenuto in una tabella, però adesso mi volevo occupare di incrementare la matrice di una riga e non riesco

  8. #8
    Ok adesso riesco ad incrementare la matrice, però ho dei problemi nella visualizzazione:
    uso document.write però mi visualizza solo l'intestazione della tabella e basta, neanche codice html che visualizzavo prima.
    Mi viene da pensare che non uso correttamente document.write, però non capisco dove sbaglio.


    codice:
    indice=-1;
    matrice = new Array();
    function aggiungi() {
    	indice = ++indice
    	matrice[indice] = new Array(document.datipian.codice.value,document.datipian.quantitapadre.value,document.datipian.dataconsegnapadre.value);
    	document.write('<table><tr><td>Codice</td><td>Quantità</td><td>Data consegna</td></tr>');
    	for (riga=0; riga=indice; riga++) {
    		document.write('<tr><td>'+matrice[riga][0]+'</td><td>'+matrice[riga][1]+'</td><td>'+matrice[riga][2]+'</td></tr>');
    	}
    	document.write('</table>');
    }

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    document.write() non puo' essere utilizzato se la pagina e' gia' visualizzata... ha l'ovvio effetto di sovrascivere tutto il codice html esistente (anche gli script)

    Devi utilizzare il DOM creando nuovi nodi e popolandoli con gli elementi che ti occorrono... il tutto non e' proprio banale e forse e' meglio fare prima qualche esperimento dopo aver letto una buona guida...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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 © 2025 vBulletin Solutions, Inc. All rights reserved.