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

Discussione: Campi di Testo

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232

    Campi di Testo

    Salve a tutti...ho un problema che credo di risolvere con un
    javascript.....

    ho una pagina con 3 campi di testo....

    io inserisco un valore nel primo campo di testo, ad esempio '5'.....con il TAB passo alla compilazione del secondo
    campo di testo ed inserisco il valore '3'.....vorrei che con l'ennessimo TAB, nel terzo campo di testo mi venga dinamicamente inserito un valore che corrisponde alla somma dei valori inseriti nei primi due campi di testo...ne segue che venga inserito '8'....

    spero che abbiate capito e che qualcuno mi possa aiutare.....

    Ringrazio anticipatamente

  2. #2
    Ciao,
    effettivamente è una cosa da javascript.
    Cmq supponendo che i primi due campi di testo abbiamo rispettivamente id uguale a "campo1" e "campo2" sull'onFocus del campo 3 lanci la funzione somma(this) (quindi <input type="text" onFocus="somma(this)">).
    La funzione somma sarà così:
    function somma(oggetto){
    oggetto.value = document.getElementById("campo1").value*1+document .getElementById("campo2").value*1;
    }
    </script>

    Ovviamente non viene fatto nessun controllo su i tipi di dati...è solo una bozza.
    http://www.beavermag.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Grazie biamat!!!
    Ho risolto!
    Mi rimane però un problemino....

    il valore che mi viene calcolato dinamicamente nel terzo campo di testo, una volta usato il tab, è calcolato in funzione dei valori che inserisco nei campi precedenti....e fino a qui tutto OK!...

    nella mia pagina io ho una riga composta da:

    ARTICOLO ---- DESCRIZIONE ---- "CAMPO DI TESTO PER IL PREZZO" ----

    "CAMPO DI TESTO PER % SCONTO" ---- "IMPORTO DEFINITIVO"

    Questa "riga" che mi viene fuori da una Select,si riferisce ad un certo numero di Ordine che, potrebbe anche contenere due o più righe....quindi quando vado a compilare i primi due campi di testo della prima riga e poi con il tab mi sposto sul campo "IMPORTO DEFINITIVO"...il calcolo è corretto....ma soltanto per il primo articolo....perchè quando vado ad inserire PREZZO E % SCONTO per la seconda riga (creata attraverso un'area ripetuta)....l'importo definitivo mi fa riferimento sempre alla prima riga.....!!!

    In sostanza io ho nel caso di un solo articolo una sola riga e quindi soltanto 3 campi di testo -> PREZZO --- SCONTO --- IMPORTO che hanno il loro ID(name)....ma quando ho più di un articolo avrò 6 campi di testo e su i 3 che vengono generati da un'area ripetuta io non posso intervenire da Dreamweaver(è quello che uso per pagine .php)....come faccio dunque a fargli calcolare l'IMPORTO definitivo per ogni articolo distintamente?????????

    Ringrazio ancora tutti anticipatamente

  4. #4
    Ciao,
    se ho capito bene cosa intendi potresti risolvere così il problema.
    La tua select scrive una serie di righe assegnando dinamicamente gli id alle input in questo modo

    <input id="prezzo1"><input id="sconto1"><input type="text" onFocus="somma(this, 1)">

    <input id="prezzo2"><input id="sconto2"><input type="text" onFocus="somma(this, 2)">

    etc etc

    In pratica gli elementi di tutte le righe hanno la parte iniziale dell'id identica ma varia il numero che sarà progressivo e dipenderà dalle righe estratte dal db.

    A questo punto modifica la funzione js così:
    function somma(oggetto, numero){
    oggetto.value = document.getElementById("prezzo"+numero).value*1+d ocument.getElementById("sconto"+numero).value*1;
    }

    Spero di aver capito il tuo problema.
    Fammi sapere.
    http://www.beavermag.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    .....hai centrato il problema.....!!

    ed effettivamente con le due righe da te postate, tutto funziona....il problema è che io, nel codice della
    pagina ho soltanto questo:

    <td width="13%"> <div align="center">
    <input name="PREZZO" type="text" id="PREZZO1" size="10">
    </div></td>
    <td width="12%"><div align="center">
    <input name="SCONTO" type="text" id="SCONTO1" size="10">
    </div></td>
    <td width="13%"><div align="center">
    <input name="IMPORTO" type="text" id="IMPORTO1" onFocus="importo(this, 1)" value="" size="10">


    ...cioè ho soltanto una riga...poi è la funzionalità di "area ripetuta" che in seguito ad una select può generarmi
    una o più righe!!!

    ....nel caso in cui la select mi restituisce una sola riga....la compilazione dei campo di testo e la "somma"
    va OK!!...ma se la select mi restituisce (ad esempio) due righe...la compilazione della prima riga va OK ma quella
    della seconda riga NO....nel campo di testo in cui avviene la "somma", mi viene restituito lo stesso valore della somma
    della prima riga...!

    se dunque io inserisco nella prima riga i valori 5 , 5 , avrò -> 10
    e se nella seconda riga inserisco i valori 6, 6, avrò -> 10 e non 12....

    dove sbaglio....bisognerebbe capire che IDname vengono assegnati dopo la select ai campi di testo successivi a quelli della prima riga...

    se adesempio io inserisco un campo di testo e gli dò nome "CAMPO" e provo a copiare ed incollare per crearne un altro,

    quest'ultimo avrà nome "CAMPO2".....

    e se il primo lo chiamo "CAMPO1"...copio ed incollo...avrò "CAMPO12"...come fare????

  6. #6
    Ciao,
    ancora non mi è chiaro come scrivi a video queste righe.
    Se sono il risultato di un'interrogazione ad un db quando li scrivi potresti utilizzare un ciclo in cui viene incrementato un contatore e sarà proprio questo contatore che verrà accodato agli id delle input e passato alla funzione.
    Purtroppo non mi è chiaro come tu generi queste righe (non sono riuscito a capirlo dalla tua descrizione) al massimo potresti postare il codice della tua pagina php. La soluzione al tuo problema non dovrebbe essere complicata basta capire chiaramente cosa fai.
    http://www.beavermag.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    allora...provo a spiegarti....io uso Dreamweaver....questo programma come tanti altri molti editor, ti permette oltre che usare la scrittura del codice anche un'interfaccia grafica....io ho creato
    una pagina in cui ho una riga che contiene la stampa di 3 variabili
    che ottengo da una select (si tratta di una pagina .php)

    ho duque <?php echo $VAR; ?> <?php echo $VAR2; ?> <?php echo $VAR3; ?>

    stampo queste variabili una accanto all'altra, sulla stessa riga....e considerando che la variabile $VAR è nel DataBase un valore "autoincrement"....può capitare che contenga più di un valore ...per questo motivo uso la funzionalità "area ripetuta" che si serve della riga che ho "disegnato" per crearne altrettante in funzione di quanti valori della variabile $VAR....

    ....ancora più chiaramente...se nel database ho un record che ha 3 variabili $VAR, $VAR2 e $VAR3...può essere che in un record
    $VAR valga 1, $VAR2 valga "PIPPO" e $VAR valga "PAPERINO"...
    può essere che ci sia anche un secondo record con $VAR che valga 2....

    per (ad esempio) creare una pagina che mi dia una "vista" dei record del database, potrei fare una select e stampare tutte le variabili che ho...ma per farlo in maniera dinamica, creo solo una riga di stampa delle variabili ed in funzioni di quanti valori di $VAR ho nel DB, uso un'area ripetuta.....che creerà dinamicamente, tante righe quante sono i valori di $VAR...(adesso dovrebbe essere più chiaro)
    ....
    in queste benedette righe, alla fine di esse, ho 3 campi di testo che compilo manualmente ed uso un javascript per calcolare la somma dei valori dei primi due campi di testo...quindi io associo l'IDname a soli 3 campi di testo e questi IDname li uso anche nel js....essendo una cosa dinamica, può capitare che la select mi restituisce solo una riga e quindi la somma va bene ma se le righe sono due???? come faccio???

    questo è il codice dell'area ripetuta che contiene i campi di testo

    <?php do { ?>
    <table width="87%" height="25" border="0">
    <tr>
    <td width="17%" height="21"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $row_Recordset['TIPO_CARTONE']; ?></font></div></td>
    <td width="32%"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $row_Recordset['MIS_ESTERNA']; ?></font></div></td>
    <td width="13%"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input name="QUANTITA" type="text" id="QUANTITA1" value="<?php echo $row_Recordset['QUANTITA']; ?>" size="10">
    </font></div></td>
    <td width="13%"> <div align="center">
    <input name="PREZZO" type="text" id="PREZZO1" size="10">
    </div></td>
    <td width="12%"><div align="center">
    <input name="SCONTO" type="text" id="SCONTO1" size="10">
    </div></td>
    <td width="13%"><div align="center">
    <input name="IMPORTO" type="text" id="IMPORTO1" onFocus="importo(this, 1)" value="" size="10">
    </div></td>
    </tr>
    </table>
    <?php } while ($row_Recordset = mysql_fetch_assoc($Recordset)); ?>

    prima di questo c'è una SELECT che estrae dei dati da un database:

    mysql_select_db($database_plr, $plr);
    $query_Recordset = "SELECT * FROM ordini WHERE NUM_ORDINE='$NUM_ORDINE'";
    $Recordset = mysql_query($query_Recordset, $plr) or die(mysql_error());
    $row_Recordset = mysql_fetch_assoc($Recordset);
    $totalRows_Recordset = mysql_num_rows($Recordset);


    come risolvo??

  8. #8
    Ho modificato una porzione del tuo codice, vedi se funziona:

    <?php
    $conture = 0;
    do {
    $counter++;
    ?>
    <table width="87%" height="25" border="0">
    <tr>
    <td width="17%" height="21"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $row_Recordset['TIPO_CARTONE']; ?></font></div></td>
    <td width="32%"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><?php echo $row_Recordset['MIS_ESTERNA']; ?></font></div></td>
    <td width="13%"><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    <input name="QUANTITA" type="text" id="QUANTITA<?php echo $counter; ?>" value="<?php echo $row_Recordset['QUANTITA']; ?>" size="10">
    </font></div></td>
    <td width="13%"> <div align="center">
    <input name="PREZZO" type="text" id="PREZZO<?php echo $counter; ?>" size="10">
    </div></td>
    <td width="12%"><div align="center">
    <input name="SCONTO" type="text" id="SCONTO<?php echo $counter; ?>" size="10">
    </div></td>
    <td width="13%"><div align="center">
    <input name="IMPORTO" type="text" id="IMPORTO<?php echo $counter; ?>" onFocus="importo(this, <?php echo $counter; ?>)" value="" size="10">
    </div></td>
    </tr>
    </table>
    <?php } while ($row_Recordset = mysql_fetch_assoc($Recordset)); ?>
    http://www.beavermag.it

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    GRAZIEEEEE!!
    Funziona....grazie tante!

  10. #10
    Di niente!
    Ciao
    http://www.beavermag.it

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.