Pagina 1 di 9 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 83
  1. #1
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    105

    Aggiungere campi ad una funzione Somma

    Ho necessità di aggiungere in un form alcuni campi dove inserire dei "servizi aggiuntivi" offerti, i cui prezzi devono essere sommato a quello finale.
    La funzione che utilizzo è la seguente:

    Essa funziona perfettamente, ma non so come aggiungere al prezzo finale altri elementi come ad esempio le spese di spedizione.
    Grazie

  2. #2
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    105
    la funzione è questa:

    </script>
    <script type="text/javascript" language="JavaScript">
    <!--
    function updateSum( __hForm, __productEl, __quantityEl, __priceEl )
    {
    var _hProduct = __hForm.elements[__productEl];
    var _hQuantity = __hForm.elements[__quantityEl];
    var _hPrice = __hForm.elements[__priceEl];
    if ( _hProduct.selectedIndex == -1 )
    _hPrice.value = "0 €";
    else {
    _hPrice.value = parseFloat( _hProduct.options[_hProduct.selectedIndex].value ) *
    parseInt( _hQuantity.value ) + " €";
    }
    } //-->
    </script>

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Aggiungile alle funzione updateSum( __hForm, __productEl, __quantityEl, __priceEl, __sendIE, __etc.. ) se sono variabili dinamiche e le processi come le altre, se sono fisse puoi aggiungerle direttamente nella somma _hPrice.value = parseFloat( _hProduct.options[_hProduct.selectedIndex].value ) *
    parseInt( _hQuantity.value ) + 10 + 20 + 3... + " €";
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    105
    Prima di entrare nel dettaglio della funzione, ho il problema di inserire i campi. Essi infatti sono campi dinamici che escono fuori nel momento in cui inserisco "il numero di passeggeri". il problema è che i campi che voglio inserire sono di tipo select e non riesco...mi puoi aitare in questo primo passaggio?
    dovri inserirlo in questa parte:

    righe = righe+"
    Passeggero "+i+"
    Nome: <input name='nome[]' type='text' size='14' maxlength='30'> Cognome: <input name='cognome[]' type='text' size='13' maxlength='30'>
    Servizi aggiuntivi: ..............................
    ";

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    La cosa si fa complessa, vedi se nelle guide puoi trovare spunti/aiuti

    P.S. Consiglio comprati un libro e studiati un po il javascript quello che vuoi fare senza un minimo di conoscenza è impossibile e rischioso.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    105
    fammi fare un tentativo...

    righe = righe+"
    Passeggero "+i+"
    Nome: <input name='nome[]' type='text' size='14' maxlength='30'> Cognome: <input name='cognome[]' type='text' size='13' maxlength='30'>
    Eventuali servizi aggiuntivi
    Ulteriore bagaglio:<select name="bagaglio"
    onchange="updateSum( this.form, 'product', 'quantity', 'price');">
    <option selected="selected">No grazie</option>
    <option value="30">Bagaglio max 15 kg € 30</option>
    <option value="40">Bagaglio max 20 kg € 40</option>
    </select>;">

    Forse in questo caso sbaglio qualche stupidagine....puoi controllare???

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da +++
    fammi fare un tentativo...
    Ok un tentativo, anche se ritengo che sia meglio utilizzare i tentativi per il superenalotto
    righe = righe+"
    Passeggero "+i+"
    Nome: <input name='nome[]' type='text' size='14' maxlength='30'> Cognome: <input name='cognome[]' type='text' size='13' maxlength='30'>
    Eventuali servizi aggiuntivi
    Ulteriore bagaglio:<select name="bagaglio"
    onchange="updateSum( this.form, 'product', 'quantity', 'price');">
    <option selected="selected">No grazie</option>
    <option value="30">Bagaglio max 15 kg € 30</option>
    <option value="40">Bagaglio max 20 kg € 40</option>
    </select>;">
    Forse in questo caso sbaglio qualche stupidagine....puoi controllare???
    Per capire se c'è un errore dovrei capire la logica (ma proprio quello che non voglio fare) comunque cambia " con gli ' name='bagaglio' e nella funzione metti il backslash updateSum( this.form, \ 'product\ ', \ 'quantity\ ', \ 'price\ '); (togli gli spazi tra la barra e l'apice)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Il tuo problema è che i campi creati dinamicamente non hanno un name a te noto - dovrebbero avere un name (ma, appunto, tocca vedere se i campi prodotti dinamicamente lo hanno, perchè se non lo hanno in pirmis bisogna fare in modo che ne esibiscano uno).

    Poi, questi campi per potere essere individuati debbono avere una caratteristica del name fissa e una variabile, sempio:

    quantita1
    quantita2
    quantita3
    passeggeri1
    passeggeri2
    passeggeri3
    bagaglio1
    bagaglio2
    bagaglio3

    a questo modo si potrebbe fare (più o meno, scrivo di getto le sviste sono assai probabili...)

    var prefissi=['quantita', 'passeggeri', 'bagaglio'], somme=[];
    for(var e=0;e<prefissi.length; e++){
    var i=1, somma=0;
    while(form.elements[prefissi[e]+i]){
    if(!somme[i]){
    somme[i]={'quantita':0, 'passeggeri':0, 'bagaglio':0};
    };
    if(!somme[i][prefissi[e]]){
    somme[i][prefissi[e]]=''+form.elements[prefissi[e]+i].value;
    };
    somma+=parseFloat(form.elements[prefissi[e]+i].value;//se serve una somma COMPLESSIVA
    ++i;
    }
    }

    alert(somme[2]['bagaglio']) //dovrebbe dare, salvo sviste, i bagagli del terzo ordine

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Passo la palla a TrueLies che è molto più bravo e pazziente
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Originariamente inviato da cavicchiandrea
    Passo la palla a TrueLies che è molto più bravo e pazziente
    No macchè, pensaci pure te Andrè - io poi c'ho pure poco tempo oggi
    tanto più che del codice che ho inviato non sono affatto convinto (non ho tempo di fare i test), ma la soluzione gira là attorno

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.