Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151

    problema con for e passaggio variabili

    Perchè con il seguente codice il valore di id è sempre l'ultimo dell'array?
    codice:
    for (i=1; i<num; i++) {
    	nometxt = "prova"+i;
    	id = array[i];
    	createtextfield(nometxt, i, 100, 250+25*i, 100, 25);
    	_root[nometxt].text = "prova";
    	_root[nometxt].onsetfocus = function() {
    		dati = new LoadVars();
    		dati.onload = function(ok) {
    			if (ok) {
    				createtextfield("provatxt", 10, 100, 200, 100, 25);
    			}
    		};
    		dati.load("test.asp?id="+id);
    	};
    }
    dove è che sbaglio?

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Prova così:

    codice:
    for (var i = 1; i < num; i++) {
    	var nomeMC = "prova" + i;
    	var mc = this.createEmptyMovieClip(nomeMC, i);
    	mc._x = 100;
    	mc._y = 250 + (25 * i);
    	mc.id = array[i];
    	mc.createTextField("txt", 1, 0, 0, 100, 25);
    	mc.txt.text = "prova";
    	mc.txt.onSetFocus = function()
    	{
    		this._parent.dati = new LoadVars();
    		this._parent.onLoad = function(ok)
    		{
    			if (ok) {
    				this._parent.createTextField("provatxt", 10, 100, 200, 100, 25);
    			}
    		};
    		this._parent.dati.load("test.asp?id=" + this._parent.id);
    	};
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    Non funziona.
    Cliccando sulle scritte non succede niente
    Ho aggiunto la riga
    this._parent.provatxt.border = true;
    in modo da rendere visibile il textfield ma non si vede niente.
    Un dubbio la riga
    this._parent.onLoad = function(ok)
    non dovrebbe essere
    this._parent.dati.onload=function(ok)

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >Un dubbio la riga this._parent.onLoad = function(ok) non dovrebbe essere

    si, senza dubbio, errore di battitura.. :-)

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    ho provato anche con
    this._parent.dati.onLoad
    ma non funziona lo stesso

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Beh, un'altra cosa è che il tuo array, a dire la verità, non può chiamarsi "array", esattamente come la Classe. Devi dargli un'altro nome: "mioArray", "pippo", "Narray", "_array", quello che vuoi ma non "array".

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    Si, questo lo so. Nelle mie prove gli avevo dato un altro nome.
    Tra le altre prove ho anche tolto l'array e il codice che ho usato è questo:
    codice:
    num=5;
    for (var i = 1; i<=num; i++) {
    	var nomeMC = "prova"+i;
    	var mc = this.createEmptyMovieClip(nomeMC, i);
    	mc._x = 100;
    	mc._y = 220+(25*i);
    	mc.id = i;
    	mc.createTextField("txt", 1, 0, 0, 100, 25);
    	mc.txt.text = "prova" + mc.id;
    	mc.txt.onSetFocus = function() {
    		this._parent.dativini = new LoadVars();
    		this._parent.dativini.onLoad = function(ok) {
    			if (ok) {
    				this._parent.createTextField("provatxt", 2, 100, 200, 100, 25);
    				this._parent.provatxt.border = true;
    			}
    		};
    		this._parent.dativini.load("test.asp?id=1");
    	};
    }
    che dovrebbe almeno far apparire un rettagolo cliccando su una delle scritte

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    Ho risulto togliento this._parent all'interno del blocco if (ok){}
    Grazie dell'aiuto, senza il tuo suggerimento sarei rimasto bloccato

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    151
    Altro problema
    se metto il codice soprariportato all0interno di un altro blocco LoadVars non funziona di nuovo

  10. #10
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Normale, cambiano i percorsi e i metodi. Ad esempio

    this.createEmptyMovieClip(nomeMC, i);

    è un metodo dei movieclip. Dentro un altro LoadVars dovrebbe essere qualcosa del tipo:

    codice:
    a = new LoadVars();
    a.path = this;
    a.onLoad = function()
    {
    	num=5;
    	for (var i = 1; i<=num; i++) {
    		var nomeMC = "prova"+i;
    		var mc = this.path.createEmptyMovieClip(nomeMC, i);
    		mc._x = 100;
    		mc._y = 220+(25*i);
    		mc.id = i;
    		mc.createTextField("txt", 1, 0, 0, 100, 25);
    		mc.txt.text = "prova" + mc.id;
    		mc.txt.onSetFocus = function() {
    			this._parent.dativini = new LoadVars();
    			this._parent.dativini.onLoad = function(ok) {
    				if (ok) {
    					this._parent.createTextField("provatxt", 2, 100, 200, 100, 25);
    					this._parent.provatxt.border = true;
    				}
    			};
    			this._parent.dativini.load("test.asp?id=1");
    		};
    	}
    }
    a.load("..");

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.