Aiutino su un calcolo javascript in tempo reale

guru of future

Nuovo Utente
Dovrei realizzare un calcolo in tempo reale che lavori cosi..
qualcuno è cosi gentile da darmi una mano?




1)Scelta select (numero fisso)
2)Scelta radio (aggiunge e toglie un valore)

totale: Totale aggiornato in base ai valori


<select>
**<optgroup label="prima scelta">
***<option value="#">---scegli---</option>
***<option value="#">1 opzione € 1.00</option>
***<option value="#">2 opzione € 2.00</option>
***<option value="#">3 opzione € 3.00</option>
**</optgroup>
**<optgroup label="seconda scelta">
***<option value="#">4 opzione € 4.00</option>
***<option value="#">5 opzione € 5.00</option>
***<option value="#">6 opzione € 6.00</option>
**</optgroup>
</select>
<input type="radio" name="primoradio" value="+2" > <strong>scelta radio1</strong><br>
<input type="radio" name="secondoradio" value="-2"> <strong>scelta radio2</strong><br>


GRAZIE MILLE!!!!
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Ti ho scritto una piccola soluzione con jquery

Codice:
$('select').change(function(){
      var add = parseInt($(this).find('option:selected').attr('value'));
      $('input[name=totale]').val('€ '+add.toFixed(2));
});
$('input:radio').change(function(){
    if($(this).is(':checked')) $('input[name=totale]').val('€ '
      +(parseInt($('input[name=totale]').val().substr(2))+parseInt($(this).val())).toFixed(2));
});

da applicare con ad esempio
Codice:
<select>
<optgroup label="prima scelta">
<option value="#">---scegli---</option>
<option value="1">1 opzione € 1.00</option>
<option value="2">2 opzione € 2.00</option>
<option value="3">3 opzione € 3.00</option>
</optgroup>
<optgroup label="seconda scelta">
<option value="4">4 opzione € 4.00</option>
<option value="5">5 opzione € 5.00</option>
<option value="6">6 opzione € 6.00</option>
</optgroup>
</select><br>
<input type="radio" name="primoradio" value="+2" > <strong>scelta radio1</strong><br>
<input type="radio" name="secondoradio" value="-2"> <strong>scelta radio2</strong><br>
<input type='text' name='totale' value='€ 0.00' disabled>

Forse è migliorabile ma comunque funziona bene
 

guru of future

Nuovo Utente
Quasi perfetta!!!

GRAZIE MILLE!!!

è quasi perfetta!!!
ho notato che se cambio la select, poi la radio e ok ma se intervengo nuovamente sulla select la radi oin posizione non funziona piu..
e fixabile ? :)



Ti ho scritto una piccola soluzione con jquery

Codice:
$('select').change(function(){
      var add = parseInt($(this).find('option:selected').attr('value'));
      $('input[name=totale]').val('€ '+add.toFixed(2));
});
$('input:radio').change(function(){
    if($(this).is(':checked')) $('input[name=totale]').val('€ '
      +(parseInt($('input[name=totale]').val().substr(2))+parseInt($(this).val())).toFixed(2));
});

da applicare con ad esempio
Codice:
<select>
<optgroup label="prima scelta">
<option value="#">---scegli---</option>
<option value="1">1 opzione € 1.00</option>
<option value="2">2 opzione € 2.00</option>
<option value="3">3 opzione € 3.00</option>
</optgroup>
<optgroup label="seconda scelta">
<option value="4">4 opzione € 4.00</option>
<option value="5">5 opzione € 5.00</option>
<option value="6">6 opzione € 6.00</option>
</optgroup>
</select><br>
<input type="radio" name="primoradio" value="+2" > <strong>scelta radio1</strong><br>
<input type="radio" name="secondoradio" value="-2"> <strong>scelta radio2</strong><br>
<input type='text' name='totale' value='€ 0.00' disabled>

Forse è migliorabile ma comunque funziona bene
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Cosi il problema dovrebbe essere risolto
Codice:
$('select').change(function(){
      var add = parseInt($(this).find('option:selected').attr('value'));
    $('input[type=radio]:checked').each(function(i,v){
       add+=parseInt($(v).val());
    });
    $('input[name=totale]').val('€ '+add.toFixed(2));
});
$('input:radio').change(function(){
    if($(this).is(':checked'))
        $('input[name=totale]').val('€ '
      +(parseInt($('input[name=totale]').val().substr(2))+parseInt($(this).val())).toFixed(2));
});

Io non ho neanche capito cosa vuoi ottenere :\
Fez non spammare messaggi poco chiari o inutili
 
Ultima modifica:

Fez Vrasta

Utente Attivo
11 Mag 2013
409
0
0
Non è poco chiaro o inutile. Ho chiesto chiarimenti dato che la sua domanda è alquanto criptica.
 

guru of future

Nuovo Utente
Nefyt grazie mille

Ciao Nefyt e grazie mille per i uoi interventi riguardo questa mia domanda :)
inutile dire quanto rapido, utile e ottimi siano stati per me i tuoi interventi!!

ho visto l'ultimo script che però non mi funziona come dovrebbe :(
in sostanza il problema sta nel fatto che la prima volta che seleziono il valore con la select
e imposto la scelta radio somma e toglie valori diversi da quelli settati nel value..

mi spiego meglio..
h**p://jsfiddle.net/WwqY3/

vado sulla select e scelgo il primo valore 1€, poi clicco sulla prima scelta radio
dovrebbe fare 1+2 =3
invece mi restituisce 5

se muovo la select nuovamente torna giusto ..:rolleyes:
e mi restituisce i valori corretti..

non vorrei chiederti troppo ma apprezzo davvero tanto il tuo aiuto!
ps.. che valore dovrei mettere per avere una radio con valore neutro? ovvero che non aumenta e non diminuisce?

GRAZIE MILLE PER IL SUPPORTO!!!

Cosi il problema dovrebbe essere risolto
Codice:
$('select').change(function(){
      var add = parseInt($(this).find('option:selected').attr('value'));
    $('input[type=radio]:checked').each(function(i,v){
       add+=parseInt($(v).val());
    });
    $('input[name=totale]').val('€ '+add.toFixed(2));
});
$('input:radio').change(function(){
    if($(this).is(':checked'))
        $('input[name=totale]').val('€ '
      +(parseInt($('input[name=totale]').val().substr(2))+parseInt($(this).val())).toFixed(2));
});


Fez non spammare messaggi poco chiari o inutili
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
A me funziona correttamente, probabilmente non ti funziona perché hai lasciato il codice precedente, infatti guarda http://jsfiddle.net/WwqY3/1/


ps: se ti serve solo per una checkbox(dal nome univoco intendo) è abbreviabile il codice
 
Ultima modifica:

guru of future

Nuovo Utente
Provo a riassumerti cosa faccio..

vado sulla select e seleziono un valore, vado sul radio e ne scelgo uno, cambio nuovamente la select, i radio sono ora sfalsati
panic?
http://jsfiddle.net/WwqY3/3/




A me funziona correttamente, probabilmente non ti funziona perché hai lasciato il codice precedente, infatti guarda http://jsfiddle.net/WwqY3/1/


ps: se ti serve solo per una checkbox(dal nome univoco intendo) è abbreviabile il codice
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Cosi funziona fammi sapere se riscontri altri problemi
Codice:
$('select').change(function(){
      		var add = parseInt($(this).find('option:selected').attr('value'));
            var check = parseInt($('input[name=primoradio]:checked').val());
         if(!isNaN(check))   add += check;
    		$('input[name=totale]').val('€ '+add.toFixed(2));
		});
		
$('input[name=primoradio]').change(function(){
            var v = parseInt($('select option:selected').attr('value'));   		    
                $('input[name=totale]').val('€ '+                                       ((isNaN(v)?0:v)+parseInt($(this).val())).toFixed(2));
		});

http://jsfiddle.net/mzShr/3/
 

guru of future

Nuovo Utente
Nefyt ti ringrazio davvero tanto, funziona perfettamente!!
come faccio a passare la variabile in un altra pagina?

credevo di riuscire con php ma in effetti quando ci lavora javascript è già via per un caffè .. :)

Cosi funziona fammi sapere se riscontri altri problemi
Codice:
$('select').change(function(){
      		var add = parseInt($(this).find('option:selected').attr('value'));
            var check = parseInt($('input[name=primoradio]:checked').val());
         if(!isNaN(check))   add += check;
    		$('input[name=totale]').val('€ '+add.toFixed(2));
		});
		
$('input[name=primoradio]').change(function(){
            var v = parseInt($('select option:selected').attr('value'));   		    
                $('input[name=totale]').val('€ '+                                       ((isNaN(v)?0:v)+parseInt($(this).val())).toFixed(2));
		});

http://jsfiddle.net/mzShr/3/
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Utilizza l'ajax se non vuoi il classico submit con refresh, esempio
Codice:
$.post('pagina.php',$('form').serialize(),function(output){
        alert(output);
});

Ovviamente devi gestirlo a seconda dell'evento che ti serve
 

guru of future

Nuovo Utente
Mi si è presentato un altro problema :(

nella scelta radio dovrà esserci anche "consegna a domicilio"
questo "importo" cambia a seconda del prodotto selezionato nella select PA NI C

se e selezionata l'opzione 1 addiziona 2€
se e selezionata l'opzione 2 addiziona 3€
se e selezionata l'opzione 3 addiziona 4€
dalla 4 in poi addiziona 5 €

reference: http://jsfiddle.net/mzShr/4/


Utilizza l'ajax se non vuoi il classico submit con refresh, esempio
Codice:
$.post('pagina.php',$('form').serialize(),function(output){
        alert(output);
});

Ovviamente devi gestirlo a seconda dell'evento che ti serve
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Mi si è presentato un altro problema :(

nella scelta radio dovrà esserci anche "consegna a domicilio"
questo "importo" cambia a seconda del prodotto selezionato nella select PA NI C

se e selezionata l'opzione 1 addiziona 2€
se e selezionata l'opzione 2 addiziona 3€
se e selezionata l'opzione 3 addiziona 4€
dalla 4 in poi addiziona 5 €

reference: http://jsfiddle.net/mzShr/4/
Intendi cosi?
Codice:
$('select').change(function(){
      		var add = parseInt($(this).find('option:selected').attr('value'));
    $('input[name=primoradio]').eq(0).attr('value',((add>=4)?'+5':'+'+(add+1)));
            var check = parseInt($('input[name=primoradio]:checked').val());
         if(!isNaN(check))   add += check;
    		$('input[name=totale]').val('€ '+add.toFixed(2));
		});
		
$('input[name=primoradio]').change(function(){
            var v = parseInt($('select option:selected').attr('value'));   		    
                $('input[name=totale]').val('€ '+                                       ((isNaN(v)?0:v)+parseInt($(this).val())).toFixed(2));
		});

http://jsfiddle.net/mzShr/26/
 
Discussioni simili
Autore Titolo Forum Risposte Data
D [HTML] Aiutino su costruzione tabella :) HTML e CSS 3
C [MySQL] aiutino MySQL 4
W Aiutino per compilare o eseguire un App Java Java 0
A Aiutino su PHP e MySQL [Checkbox] PHP 2
otto9due Redirect 301 con espressioni regolari piccolo aiutino Apache 3
otto9due breadcrumbs con microformat o RDF piccolo aiutino.. PHP 2
otto9due Funzione cambia attributo input value non funziona.. Un aiutino :D Javascript 14
otto9due Piccolo aiutino per una query.. PHP 3
S Aiutino con il Javascripts. Javascript 2
T [risolto] aiutino modifica form email HTML e CSS 7
R Aiutino per query MySql PHP 8
P Aiutino banner PHP 2
L Aiutino su upload file PHP 1
M Aiutino con php e redirect PHP 7
S font da utilizzare su un sito web [era: un piccolo aiutino!] HTML e CSS 8
N Parse error: syntax error, unexpected T_VARIABLE Piccolo Aiutino :) PHP 0
N Presentazione e aiutino :-) HTML e CSS 3
A Aiutino? PHP 2
A Aiutino... PHP 12
V Aiutino a niubbo Classic ASP 2
N aiutino Programmazione 11
F Apertura popup [era: Aiutino] HTML e CSS 1
F aiutino ad un desperado! HTML e CSS 2
ila aiutino per tesi Discussioni Varie 0
P Un Aiutino Pagine Web HTML e CSS 7
M Aiutino :P Flash 2
metalgemini Aiutino per motore di ricerca SEO e Posizionamento 3
Hikari Aiutino per una novizia ^_^ Classic ASP 14
A Ho bisogno di un aiutino !!! PHP 2
R un aiutino, please! HTML e CSS 0
G Aiutino per combobox Classic ASP 0
G Aiutino x posta elettronica Posta Elettronica 2
L help aiutino Discussioni Varie 5
E Aiutino! HTML e CSS 0
S aiutino Classic ASP 1
andreas88 Formula Excel calcolo notti totali - Settore Turismo Windows e Software 4
MarcoGrazia Calcolo fra due date con esclusione delle feste PHP 7
M calcolo della velocità MS Access 5
C scelta operazione di calcolo in c++ C/C++ 7
Alex_70 Calcolo eta' da fixare PHP 60
M Problema con php per calcolo costo percentuale PHP 7
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
A [PHP] calcolo numero di ore effettuate PHP 7
M [Javascript] Verifica calcolo prima di fare insert Javascript 13
M [PHP] Visualizzare nell'alert il calcolo PHP 4
maxnegri [PHP]Funzione di calcolo prezzo di una camera in un range di date PHP 62
N [Java] Piccolo jform per calcolo totale da 2 campi i double Java 0
S Creare un foglio di calcolo in html collegandolo a un e-commerce HTML e CSS 7
P [PHP] Calcolo prezzi camera in range di date diverse PHP 11
V calcolo giorno di fine mese ad una seconda data jQuery 0

Discussioni simili