Visualizzazione dei risultati da 1 a 8 su 8

Discussione: SendAndLoad per voto

  1. #1

    SendAndLoad per voto

    Ciao vi pongo la questione:

    ho 18 campi di testo dinamici tutti istanziati v1,v2,v3..v18
    ho 18 bottoni istanziati vota1,vota2.....vota18
    ho un db access con 18 campi numerici 'voto' con ID crescente

    cosa vorrei:

    clicco su un bottone (es: vota3) mando alla pagina ASP il contenuto di v3 + 1 che va ad incrementare
    il valore in voto con ID=3 e mi rimanda a flash il valore di v3 incrementato.
    avevo pensato al SendandLoad
    la pagina.asp e' cosi':

    codice:
    <%
    v3=Request.querystring("v3")
    Dim Conn
    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("gfvoti.mdb")
    Dim SQL
    SQL="UPDATE votazione set voto='"&v3&"' WHERE id=3"
    
    Conn.Execute(SQL)
    Response.Write("voto=" & v3)
    %>
    eseguita cosi':

    http://192.168.130.124/gfbozi/pagina.asp?v3=3
    il suo output e' correttamente:

    voto=3

    in flash:

    codice:
    vota3.onRelease = function(){
    dati_send = new LoadVars(); 
    dati_send.v3 = v3.text;
    trace(v3.text)  //qui e' ok
    dati_send.sendAndLoad("pagina.asp", dati_send, "POST"); 
    dati_send.onLoad = function(success) { 
    if (success) { 
    trace("OK!") 
    v3.text=dati_send.voto; //qui no!!!!
    trace(dati_send.voto) 
    } else { 
    testo_txt.text = "nisba"; 
    } 
    }; 
    }
    ma il ritorno e' undefined....!!!!

    -Nextart.it Graphic Solutions

  2. #2
    scusa ma non ho capito

    dov'è che fai leggere il contenuto del db prima dell'aggiunta

    in ogni caso prova così

    codice:
    vota3.onRelease = function(){
        dati_send = new LoadVars(); 
        dati_send.v3 = v3.text;
        dati_send.onLoad = function(success) {    
                 if (success) { 
                     // voto aggiornato
                 } else { 
                    // errore caricamento pagina.asp
                 }
        }
        dati_send.sendAndLoad("pagina.asp", dati_send, "POST"); 
    
    }

  3. #3
    anzi se devi fare una somma

    dati_send.v3 = Number(v3.text) a meno di una tipizzazione dei dati.

  4. #4
    Ciao Rempox le caselle sono tutte con valore iniziale = 0.

    ho messo il tuo code ma mi ritorna undefined!!!

    dov'è che fai leggere il contenuto del db prima dell'aggiunta
    non ho capito cosa chiedi.

    io devo premere un tasto (vota3) , aggiungere 1 al valore cobntenuto nella casella (v3) e poi inserire questo valore nel db e restituire alla casella il valore aggiornato.


    :master:
    -Nextart.it Graphic Solutions

  5. #5
    scusa ma una votazione non funziona così.


    il valore nel db all'inizio è 0

    flash tramite asp legge il db e settera il valore v3 all'effettivo valore contenuto nel db

    quoando premi il tasto Vota
    legge il valore di V3 già caricato in flash, somma 1 (0+1)

    e chiama la funzione asp di upload nel db

    al prossimo giro v3 avra valore 1 quindi se votato nel db registrerà 2

    altrimenti con il tuo sistema registra sempre 1

    l'undefined secondo me dipende dal fatto che nel db il campo è numerico e tu provi a scrivere un campo testo.

    verifica con le trace

    Ciao

  6. #6
    ok.
    1-
    il valore nel db all'inizio è 0
    con leggi.asp leggo dal db i valori

    codice:
    myText = new LoadVars();
    myText.onLoad = function(success) {
    	if (success) {
    		
    		_root.v3.text = myText.voto3;
    	}else {
    		trace("cazzo")
    	}
    };
    myText.load("leggi.asp");
    ed ottengo

    voto1=0&voto2=0&voto3=0&voto4=0&voto5=0&voto6=0&vo to7=0&voto8=0&voto9=0&voto10=0&voto11=0&voto12=0&v oto13=0&voto14=0&voto15=0&voto16=0&voto17=0&voto18 =0

    e nella casella v3 ho 0.

    2-quando premi il tasto Vota
    legge il valore di V3 già caricato in flash, somma 1 (0+1)
    ma la somma in un campo di testo come la faccio? :master:

    nel frame
    codice:
    vota3.onRelease = function(){
     v3.text = v3.text + 1; // :master:  :master: 
        dati_send = new LoadVars(); 
    	dati_send.v3 = Number(v3.text);
    	trace(dati_send.v3)
        dati_send.onLoad = function(success) {    
                 if (success) { 
                    v3.text=dati_send.voto3
    				trace(v3.text)
                 } else { 
                    // errore caricamento pagina.asp
                 }
        }
        dati_send.sendAndLoad("pagina.asp", dati_send, "POST"); 
    
    }
    ho capito il concetto e se eseguo singolarmente le sezioni,
    leggo da db: ok
    inserisco il valore nel db e la stringa che devo scrivere e' :
    .........../pagina.asp?v3=1

    ok il valore di voto3 nel db e' 1

    ma tutto insieme non va!!!!!
    -Nextart.it Graphic Solutions

  7. #7

  8. #8
    Perfetto , in piu' sbagliavo nella pagina asp a dichiarare la variabile.
    Per ora ti ringrazio, poi mi rifaro' vivo per la dinamicità (vorrei evitare di scrivere 18 var e 18 btn.) dello script, mi sbaglio con il ciclo for.....




    ciao...

    -Nextart.it Graphic Solutions

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.