Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196

    sommare campi con stesso nome

    ciao ragazzi mi serve un aiuto; praticamente ho un'area ripetuta in cui ripeto un
    <input name="Prezzo_prod[]" disabled type="text" id="Prezzo_prod[]" value="0">

    di conseguenza se io ho ad esempio 3 prodotti,mi si ripete lo stesso nome per tutti e tre,quello che devo fare è una funzione che mi stampi il totale in un altro campo
    <input name="Totale" type="text" id="Totale" onclick="Somma()">
    con la somma dei 3 prodotti; ovviamente il numero dei prodotti nell'area ripetuta può variare ogni volta in base a quelli che vengono scelti dall'utente..

    ho provato a scrivere qualcosa ma nn conosco molto bene il javascript e le sue funzionalità

    function Somma()
    {
    document.form1.totale.value = parseFloat(document.form1.Prezzo_prod.value)
    }

    ciao
    PHP, ASP, Javascript

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione che il name= puoi ripeterlo, l'id= no.
    Nel tuo caso probabilmente puoi togliere l'id: i campi del form supporano ancora il name (nel caso di radio e` praticamente obbligatorio) anche nelle ultime versioni di XHTML.

    Per accedere ad un elemento della collezione (campi con lo stesso nome) devi usare i vettori.

    var addendo = document.form1.elements['Prezzo_prod[]'][i].value;
    dove i va da 0 a N-1.

    Esempio di una somma di tutti i campi con lo stesso nome.
    codice:
    var somma = 0;
    var ff = document.form1;
    var add = ff.elements['Prezzo_prod[]'];
    for (var i=0; i<add.length; i++) {
      somma += parseFloat(add[i].value);
    }
    alert ("totale: "+somma);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    ciao grazie per i chiarimenti su name e id...ho fatto come hai detto tolto l'id e inserito la funzione;l'ho riadattata togliendo l'alert perchè a me serviva che stampasse il valore dentro il campo in quanto devo salvare nel db sia i prezzi singoli dei prodotti che il totale; cmq funziona perfettamente...

    grazie mille

    ciao
    PHP, ASP, Javascript

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Chiaro che andava adattata.
    Tra l'altro andrebbe migliorato il passaggio parametri (che non ho affrontato, dato che coinvolge anche il codice HTML).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    è possibile fare un controllo simultaneo del totale con un altro valore? mi spiego, i prezzi che inseriscono gli utenti possono essere al rialzo oppure al ribasso rispetto ad un prezzo di partenza.
    Per es. il prezzo di partenza è = 100 ed è al rialzo...
    posso mettere un controllo sempre sul campo totale dove verifico se il prezzo è superiore oppure no?
    ho provato a richiamare questa funzione ma nn va:

    function Controllovalore_rialzo()
    {
    var valore_controllo = document.form1.Prezzo_part.value;
    var totale = document.form1.Totale.value;
    if (valore_controllo<totale){
    alert("Il totale è inferiore al prezzo di partenza");
    return false;
    }
    }

    la parte dove la chiamo é:

    if ($row_visual_asta['Rialzo'] == 'Yes')
    {
    $prezzo_asta = $row_visual_asta['Prezzo_apertura'];
    echo "<input name=\"Totale\" type=\"text\" id=\"Totale\" onfocus=\"Sommacampi(),Controllovalore_rialzo()\"> ";
    }
    else
    {
    echo "<input name=\"Totale\" type=\"text\" id=\"Totale\" onfocus=\"Sommacampi(),Controllovalore_ribasso()\" >";
    }

    è sbagliato come ho scritto la funzione?
    ciao
    PHP, ASP, Javascript

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La parte lato server non la ho guardata. In futuro se metti del codice metti quello che arriva al browser (HTML), non il sorgente (PHP o ASP).

    La struttura dello script mi sembra corretta ma stai facendo il confronto con le due stringhe ASCII che contengono i prezzi.
    Per cui "10" < "8"

    Devi trasformare le stringhe in numeri prima del confronto:

    var valore_controllo = parseFloat(document.form1.Prezzo_part.value);
    var totale = parseFloat(document.form1.Totale.value);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    ok quel problema lì l'ho sistemato,ora ne un altro piccolo sempre riguardo i confronti,probabilmente sbaglio la sintassi della funzione;io ho un'area ripetuta in cui visualizzo tutti i totali già inseriti dall'utente e devo fare un controllo simile a quello di prima,praticamente se è al rialzo e il totale inserito è inferiore ad un prezzo già presente nel db mi deve comparire un alert che me lo fa presente...

    ho scritto una funzione sulla falsa riga dell'altra ma nn funziona

    l'input nell'area ripetuta è:
    <input name="Prezzi_offerte" type="text" value="<?php echo $row_visual_prezzo_off['Prezzo_offerta'];?>">

    e la function è:

    function Confronta_prezzi_rialzo2()
    {
    var ff = document.form4;
    var add = ff.elements['Prezzi_offerte[]'];
    var tot = parseFloat(document.form2.Totale.value);

    if (add[0]>tot){
    alert("Il totale è inferiore ad un'altra vostra offerta");
    return false;
    }
    }


    che richiamo nell'input del totale
    <input name="Totale" type="text" onfocus="Sommacampi(),Confronta_prezzi_rialzo2()" >

    cosa c'è di sbagliato?
    grazie
    PHP, ASP, Javascript

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    196
    scusa nell'if della funzione c'è un add[0] che probab nn va..avevo provato a fare delle prove..
    PHP, ASP, Javascript

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    add deve sempre avere un [qualcosa], perche` individua un vettore. Quindi il testo lo devi mettere in un loop.

    Comunque non puoi mescolare JS e linguaggio lato server.
    Il PHP viene eseguito sul server PRIMA di spedire la pagina al client, il JS viene eseguito sul client.

    Il valore del database lo devi trasferire una volta per tutte, e a quel punto e` un dato statico.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.