Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: input text dinamiche

  1. #1

    input text dinamiche

    Ciao,

    ho creato delle input text dinamiche inserite in una tabella con due cicli for.
    Ho nominato queste input nel modo id+i+riga e per controllo ho affidato il nome della input con il suo valore. Ora nella funzione calcola, devo moltiplicare il valore di id01 per id11 per id21 per id31 e scriverlo in id51. Questo valore verra' poi moltiplicato per un valore fisso a seconda della scelta della casella select e scritto in id61. Questo per ogni riga. Allego foto per chiarimenti.

    Il codice è questo:


    <script type="text/javascript">

    var riga=0;
    /* funzione Add */

    function Add(id_table)
    {
    riga=riga+1;
    var table = document.getElementById(id_table);
    var tbody = table.getElementsByTagName('tbody')[0];
    var tr = document.createElement("tr");
    for(var i=0; i<7; i++)
    {
    if(i!=4)
    {
    var td = document.createElement('td');
    var tx = document.createElement("input");
    if(i>4)
    {
    tx.type="text";
    tx.readOnly="true";
    tx.name="id"+i+riga;
    tx.value=tx.name;
    }
    else
    {
    tx.type="text";
    tx.value="0";
    tx.name="id"+i+riga;
    tx.value=tx.name;
    }
    td.appendChild(tx);
    tr.appendChild(td);
    }
    else
    {
    td = document.createElement('td');
    tx = document.createElement("select");
    tx.options[tx.length] = new Option('abete kvh');
    tx.options[tx.length] = new Option('abete lamellare');
    td.appendChild(tx);
    tr.appendChild(td);
    }
    }
    tbody.appendChild(tr);
    }


    /* funzione calcola */

    function calcola()
    {
    selIdx = document.forms[0].materiale.selectedIndex;
    switch (selIdx)
    { case 0: { price=325;
    break;
    }
    case 1: { price=396;
    break;
    }
    }

    metricubi=form1.numero.value*(form1.larg.value/100)*(form1.alt.value/100)*(form1.lung.value/100);
    form1.mc.value=eval(metricubi);

    for(var k=1;k<riga+1;k++)
    { for(var j=0;j<4;j++)
    { var nome="id"+j+k;
    alert(nome);
    }
    }
    }


    </script>

    C'è qualcuno che puo' aiutarmi
    Grazie

    LucaImmagine.jpg
    Immagini allegate Immagini allegate

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Ciao e benvenuto, il calcolo dovrà avvenire riga x riga utilizzando id che hai generato dinamicamente.
    Al posto dell'allegato foto piccola metti il link alla pagina d'esempio online, in questo modo agevolerai gli aiuti grazie
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Come faccio ad allegare il link alla pagina d'esempio online??

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Prova questo.

    Codice PHP:
    <script>
    // settato per la prova
    riga 2;
    function 
    moltiplica() {
     for(var 
    k=1;k<riga+1;k++){ 
     var 
    1;
        for(var 
    j=0;j<4;j++) { 
          var 
    nome="id"+j+k;
       
    parseFloat(document.getElementById(nome).innerText);
        }
     var 
    destino "id5"+k;
     
    document.getElementById(destino).innerText x;
     }
    }
    </script>
    <table>
    <tr>
     <td >C1</td><td>C2</td><td>C3</td><td>C4</td><td>C5</td><td>Totale</td>
    </tr>
    <tr>
     <td id="id01">1</td><td id="id11">2</td><td id="id21">3</td><td id="id31">4</td><td id="id41">5</td><td id="id51"></td>
    </tr>
    <tr>
     <td id="id02">10.1</td><td id="id12">20.2</td><td id="id22">30</td><td id="id32">40</td><td id="id42">50</td><td id="id52"></td>
    </tr>
    <table>
     <input type="button" id="c" value="Calcola" onclick="moltiplica()"/><br /> 
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,506
    Ciao Luca,
    benvenuto sul forum.

    Ti invito a leggere il regolamento e in particolare la sezione che riguarda l'utilizzo del tag code.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Ciao, ho provato ma non funziona!! Non so come mai!!

  7. #7
    Mi sembra che prende il primo valore e poi esce dal ciclo for.

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Hai provato il codice postato e solo quello ?

    Da me funziona benissimo.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Infatti avevo fatto con 5 celle ma contavo solo su 4.


    codice:
    <script>
    // settato per la prova
    riga = 2;function moltiplica() {
     for(var k=1;k<riga+1;k++){ 
     var x = 1;
        for(var j=0;j<4;j++) { 
          var nome="id"+j+k;
       x = x * parseFloat(document.getElementById(nome).innerText);
        }
     var destino = "id4"+k;
     document.getElementById(destino).innerText = x;
     }
    }
    </script>
    <table>
    <tr>
     <td >C1</td><td>C2</td><td>C3</td><td>C4</td><td>Totale</td>
    </tr>
    <tr>
     <td id="id01">1</td><td id="id11">2</td><td id="id21">3</td><td id="id31">4</td><td id="id41"></td>
    </tr>
    <tr>
     <td id="id02">10.1</td><td id="id12">20.2</td><td id="id22">30</td><td id="id32">40</td><td id="id42"></td>
    </tr>
    <table>
     <input type="button" id="c" value="Calcola" onclick="moltiplica()"/><br />
    Dà.

    C1 C2 C3 C4 Totale
    1 2 3 4 24
    10.1 20.2 30 40 244823.99999999997
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Ciao,l'esempio funziona benissimo,ma non so come mai,copiato nella mia funzione,non mi da il risultato..probabilmente sbaglio qualcosa..ho inserito una alert per monitorare il nome delle input text che ho inserito..facendolo partire mi esce la schermata con scritto id01 e poi si ferma..non so come mai..sembra esca dal for..dove sbaglio??grazie per la disponibilità,ma non sono molto pratico!!

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