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

    Trovare il numero più grande contenuto in una tabella

    Buonasera, ho provato a creare un programmino che, prendendo alcuni dati in input (usando delle inputbox) generasse, attraverso Javascript una tabella in html in cui disporli, e alla pressione di un pulsante crea una nuova colonna in cui inserire questi dati.

    Ora avrei voluto fare in modo che presi i dati di una certa riga, il numero più grande di questo venisse colorato in verde, e ho provato ad agire in questa maniera:
    codice:
                    
    if (Cont >= 2){
        var Max = document.getElementById('td_4_1').value;
        document.getElementById('td_4_1').style= "color:green";
        for (var i=2; i>Cont; i++){
            if (document.getElementById('td_4_'+i).value > Max) {
                for (f=1; f=i; f++){
                    document.getElementById('td_4_'+f).style= "color:white";
                };
                Max = document.getElementById('td_4_'+i).value;
                document.getElementById('td_4_'+i).style= "color:green";
            };
                        
                        
        };
    };
    Cerco di spiegare cosa ho fatto:
    La variabile Cont è un banale contatore che tiene il conto delle colonne nella tabella, se queste fossero minori di 2 non avrebbe senso fare il confronto, quindi questa parte di codice non verrebbe eseguita

    I valori interessati sono contenuti all'interno di celle aventi come nome td_3_N (Dove al posto di N c'è un numero progressivo in base alla colonna in cui ci troviamo)

    Quindi, ho inserito il valore della cella della prima colonna nella variabile max, colorando il contenuto di verde.

    Poi, ho fatto confrontare Max con le altre celle, utilizzando un ciclo for, e nel momento in cui, una di queste celle ha un valore più grande di quello di max, vengono colorate tutte di bianco, per poi ricolorare di verde la nuova più grande.

    Cosi non funziona, ma non mi viene restituito nessun errore di sintassi, qualcuno sà spiegarmi dove sbaglio.

    Aggiungo anche il codice intero se dovesse servier per chiarificare
    [SPOILER]
    codice:
    <html>
        <head>
        </head>
        <body bgcolor="#323232" style="color:white">
            <script>
                var CV;  //Costi Variabili
                var CP;  //Capacità produttiva
                var CI;  //Costi Indiretti
                var PV;  //Prezzo vendita
                var CF;  //Costi fissi
                var Ricavi;
                var Costi;
                var Utile;
                var MDC; //Margine di contribuzione (ricavi unitari - costi unitari)
                var MCL; //Margine di contribuzione lordo
                var MCSL; //Margine di contribuzione semi-lordo
                var Cont;
                Cont = 1;
                function risolvi(){
                    
                    CV = document.getElementById('CV').value;
                    CP = document.getElementById('CP').value;
                    CI = document.getElementById('CI').value;
                    PV = document.getElementById('PV').value;
                    CF = document.getElementById('CF').value;
                    Ricavi = PV*CP;
                    Costi = CF+CV*CP;
                    MDC = PV-CV;
                    Utile = Ricavi - Costi;
                    MCL = MDC*CP;
                    MCSL = MCL-CF;
                    document.getElementById('Tab').style.display="block";
                    
                    
                    var row1 = document.getElementById("Tr1");
                    var x1 = row1.insertCell(Cont);
                    x1.innerHTML = "Prodotto n"+Cont;
                    
                    var row2 = document.getElementById("Tr2");
                    var x2 = row2.insertCell(Cont);
                    x2.innerHTML = PV;
                    x2.id = "td_2_"+Cont;
                    
                    var row3 = document.getElementById("Tr3");
                    var x3 = row3.insertCell(Cont);
                    x3.innerHTML = CV;
                    x3.id = "td_3_"+Cont;
                    
                    var row4 = document.getElementById("Tr4");
                    var x4 = row4.insertCell(Cont);
                    x4.innerHTML = MDC;
                    x4.id = "td_4_"+Cont;
                    
                    var row5 = document.getElementById("Tr5");
                    var x5 = row5.insertCell(Cont);
                    x5.innerHTML = CP;
                    x5.id = "td_5_"+Cont;
                    
                    var row6 = document.getElementById("Tr6");
                    var x6 = row6.insertCell(Cont);
                    x6.id = "td_6_"+Cont;
                    x6.innerHTML = CF;
                    
                    var row7 = document.getElementById("Tr7");
                    var x7 = row7.insertCell(Cont);
                    x7.id = "td_7_"+Cont;
                    x7.innerHTML = MCL;
                    
                    var row8 = document.getElementById("Tr8");
                    var x8 = row8.insertCell(Cont);
                    x8.innerHTML = MCSL;
                    x8.id = "td_8_"+Cont;
                    
                    if (Cont >= 2){
                
                    var Max = document.getElementById('td_4_1').value;
                    document.getElementById('td_4_1').style= "color:green";
                    for (var i=2; i>Cont; i++){
                        if (document.getElementById('td_4_'+i).value > Max) {
                            for (f=1; f=i; f++){
                                document.getElementById('td_4_'+f).style= "color:white";
                            };
                            Max = document.getElementById('td_4_'+i).value;
                            document.getElementById('td_4_'+i).style= "color:green";
                        };
                        
                        
                    };
                    };
                    Cont=Cont+1;
                };
                
            </script>
            <div id="Tab" style="display:none"> <table cellspacing = 40 >
                <tr id="Tr1"><td><center>>Prodotto<center></td></tr>
                <tr id="Tr2"><td>Prezzo di vendita (U)</td></tr>
                <tr id="Tr3"><td>Costi di vendita (U)</td></tr>
                <tr id="Tr4"><td>Margine di contribuzione (U)</td></tr>
                <tr id="Tr5"><td>Quantità venduta</td></tr>
                <tr id="Tr6"><td>Margine di contribuzione lordo</td></tr>
                <tr id="Tr7"><td>Costi Fissi</td></tr>
                <tr id="Tr8"><td>Margine di contribuzione semi-lordo</td></tr>
                    
                    
                </tr>   
            </table>
            </div></noscript>
            </script>
            <center>Inserisci i dati in tuo possesso</center>
            <!-- <form name="Dati"> -->
            
                <table cellspacing = 40>
                    <tr>
                        <td><center>Prezzo di Vendita</center> <input type="text" id="PV"></td>
                        <td><center>Capacità Produttiva</center> <input type="text" id="CP"></td>
                        
                    </tr>    
                    <tr>
                           <td><center>Costo Variabile</center><input type="text" id="CV"></td>
                        <td><center>Costi Fissi</center><input type="text" id="CF"></td>
                    </tr>
                    <tr>                
                        <td><center>Costi indiretti</center> <input type="text" id="CI"></td>
                        <td><center><button onclick="risolvi()" >Risolvi</button></center> </td>
                    </tr>
                <table>
                
            <!-- </form> -->
                
        </body>
    [/SPOILER]

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Le celle non hanno .value, pertanto per if di confronto con là variabile max o usi .text oppure innerHTML
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ho provato a trasformare il codice come consigliato, ma anche cosi non ho nessun risultato:

    codice:
                    if (Cont >= 2){
                
                    var Max = document.getElementById('td_4_1').innerHTML;
                    document.getElementById('td_4_1').style= "color:green";
                    for (var i=2; i>Cont; i++){
                        if (document.getElementById('td_4_'+i).innerHTML > Max) {
                            for (f=1; f=i; f++){
                                document.getElementById('td_4_'+f).style= "color:white";
                            };
                            Max = document.getElementById('td_4_'+i).innerHTML;
                            document.getElementById('td_4_'+i).style= "color:green";
                        };
                        
                        
                    };
                    };

  4. #4
    Credo sia sbagliato il primo ciclo for, dovrebbe essere:
    codice:
    for(var i=2; i<=Cont; i++){
    Edit:
    Anche il secondo ciclo credo sia errato
    codice:
    for(f=1; f==i; f++){
    Ultima modifica di lucavizzi; 02-06-2015 a 21:19

  5. #5
    Ho corretto gli errori, non li avevo notati, ma ancora non funziona, non riesco a spiegarmi perchè, sto provando a farmi restituire i valori per controllare e non sembra ci siano problemi, ma nonostante tutto non funzioni, come se ci fosse un problema nel confrontarli.
    Mi è venuto un dubbio, è possibile che vengano considerate come stringhe e non come valori numerici?

    codice:
                    if (Cont >= 2){
                
                    var Max = document.getElementById('td_4_1').innerHTML;
                    document.getElementById('td_4_1').style= "color:green";
                    for (var i=2; i<=Cont; i++){
                        if (document.getElementById('td_4_'+i).innerHTML > Max) {
                            for (f=1; f==i; f++){
                                document.getElementById('td_4_'+f).style= "color:white";
                            };
                            Max = document.getElementById('td_4_'+i).innerHTML;
                            document.getElementById('td_4_'+i).style= "color:green";
                        };
                        
                        
                    };
                    };

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Molto probabile
    codice:
     if (Cont >= 2){
       
               var Max = parseInt(document.getElementById('td_4_1').innerHTML);
                    document.getElementById('td_4_1').style.color="green";
                    for (var i=2; i<=Cont; i++){
                        if (parseInt(document.getElementById('td_4_'+i).innerHTML) > Max) {
                            for (f=1; f==i; f++){
                                document.getElementById('td_4_'+f).style.color="white";
                            };
                            Max = document.getElementById('td_4_'+i).innerHTML;
                            document.getElementById('td_4_'+i).style.color="green";
                        };
                        
                        
                    };
                    };
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.