Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    Aggiornamento dati errato

    Cari Amici,nello scusarmi per la mia precedente discussione, volevo una mano con questo script:

    codice:
     
    <script language="JavaScript" type="text/JavaScript">
    
    // valore iniziale in euro
    var valore_iniziale=00;
    // totale iniziale
    var totale=valore_iniziale;
    // valuta
    valuta = "€"
    
    
    function modifica(check_box) {
    
    if(totale>=valore_iniziale && check_box!=="") {
    document.all.prezzo.innerHTML = "";
    valore = document.form1[check_box].value;
    if(document.form1[check_box].checked == true) {
    // somma se selezionato
    totale = Math.abs(totale)+Math.abs(valore);
    } else {
    // sottrazione se non è selezionato
    totale = Math.abs(totale)-Math.abs(valore);
    }
    }
    // popolo lo span in base al totale modificato
    if(document.all.prezzo) { 
    document.all.prezzo.innerHTML = totale+valuta;
    document.form1.euro.value= (totale);
    } else {
    return false;
    }
    }
    // ciclo per verificare per aggiunger eil valore del radio selezionato 
    // e sottrarre il vecchio valore selezionato uso: <input onclick("verifica_radio(this.name)")
    
       var vecchio_valore_radio = 0;
    
       function setta_vecchio_valore(nome_radio) {
       for (i=0;i<document.form1[nome_radio].length;i++){
       if (document.form1[nome_radio][i].checked==true)    {
       vecchio_valore_radio = document.form1[nome_radio][i].value;
       break
       } else {
       vecchio_valore_radio = 0;
       } 
       }
       }
       
       function verifica_radio(nome_radio) {
       for (i=0;i<document.form1[nome_radio].length;i++){
       if (document.form1[nome_radio][i].checked==true && totale>=valore_iniziale)    {
       document.form1[nome_radio][i].disabled=true
       document.all.prezzo.innerHTML = "";
       totale = Math.abs(totale)-Math.abs(vecchio_valore_radio);
       totale = Math.abs(totale)+Math.abs(document.form1[nome_radio][i].value);
       //valore_radio_selezionato = document.form1[nome_radio][i].codice;
       //alert(valore_radio_selezionato);
        //vecchio_valore_radio = document.form1[nome_radio][i].value;
       //break
       } else {
           document.form1[nome_radio][i].disabled=false
       }
       }
       // popolo lo span in base al totale modificato
       if(document.all.prezzo) { 
       document.all.prezzo.innerHTML = totale+valuta;
       } else {
       return false;
       }
       }
    
    
    function invia_query() {
    // definisco il form da controllare
    var f = document.forms['form1']
    // radio di partenza
    var i = -1
    // conto tutti gli elemtni del form
    var lunghezza = f.elements.length; 
    // verifica di tutti gli elemtni radio
    while (++i < lunghezza) {
    // abilito tutti gli elementi radio se disabilitati
    if (f.elements[i].type === 'radio' && f.elements[i].disabled==true) {
    f.elements[i].disabled = false;
    }
    }
    // submit del form1
    
    alert('Total Euro payment '+totale); 
    f.submit();
    }
    
    //-->
    </script>
    Che mi fa il calcolo di vari checkbox, ma dato i checkbox sono popolati attraverso i dati prelevati dal db se li deseleziono per selezionarmi altri il totale euro è sempre con - davanti è non il reale.
    Potete aiutarmi?

    Grazie 1000
    Gino

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    dovresti postare anche l'html del form

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Purtroppo per spazio qui non possso postarlo, comunque lo script che che ti ho postato in precedenza è inserito in una pagina che si popola con i dati del db, vorrei che dove c'è TOTAL PAYMENT ci sia il risultato dei campi popolati e l'utente selezionando e deselezionando i checkbox aggiorni il totale.
    Grazie per il tuo aiuto.
    Gino

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    rileggendo mi pare di aver capito. Lo script funziona correttamente se di partenza tutti i check sono deselezionati.
    quando crei le vaire checkbox tieni conto di quelle checkate e fa la somma dei valori da mettere poi qua
    codice:
    var valore_iniziale=00;

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    E' proprio così, il valore iniziale è settato 00, come faccio a settarlo dinamicamente e far effettuare le modifiche dei vari checkbox eventualmente selezionando e deselezionando i vari checkbox popolati dinamicamente?
    In pratica penso che si potrà risolvere mettendoci nello script java un controllo che verifichi i checkbox già selezionati dinamicamente.
    Grazie 1000 per il tuo prezioso aiuto.
    Ciao
    Gino

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    il totale delle checkbox già selezionate io lo calcolerei lato server... cosa usi lato server?
    Comunque una soluzione lato client in javascript potrebbe essere una funzione come questa
    codice:
    function ImpostaTotale(){
      var ff = document.form1
      for(var i=0;i<ff.elements.length;i++)
        if(ff.elements[i].type=='checkbox' && ff.elements[i].checked)
          totale+=Math.abs(ff.elements[i].value);
      document.all.prezzo.innerHTML = totale+valuta;
      ff.euro.value=totale
    }
    da richiamare all'onload della pagina

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    GRANDE!!!
    Funziona tutto!!
    Grazie 1000
    Gino

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.