Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Aggiornamento value di campi input in base a check di radio. Mi aiutate?

    Salve a tutti... avrei bisogno di realizzare uno scriptino... a mio avviso non molto difficile, ma non essendo esperto di js non sono in grado di realizzarlo interamente e ho bisogno di una mano.

    Ho un checkbox di valore 5
    Ho tre radio, di valore rispettivamento 10, 20 e 30.
    poi altri due radio di valore rispettivamente A e B
    in fondo a tutto ho due input nascosti di nome input1 e input2

    io avrei la seguente necessità:
    [PHP]
    una volta selzionato uno dei primi tre radio:

    se seleziono il radio A,
    se checkbox è spuntanto
    su input1 ci va il valore del primo radio selezionato + valore di checkbox diviso per dieci (es. (20 +5) /10)
    altrimenti valore radio diviso dieci (es. 20/10)

    se seleziono il radio B
    se checkbox è spuntato
    su input2 ci va il valore del primo radio selezionato + valore di checkbox (es. 20+5)
    altrimenti il valore del radio e basta (es. 20)

    Naturalmente gli input si devo aggiornare anche se cambio successivamente uno dei radio o checkbox.
    [⁄PHP]

    Potete aiutarmi... ho provato un pò ma ho ottenuto pochi risultati... anzi...

    Vi ringrazio anticipatamente
    Lore

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: prova a vedere se funziona
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Pagina senza titolo</title>
    
        <script language="javascript" type="text/javascript">
    // <!CDATA[
    
    //dalla libreria prototype-1.4.0.js
    function $() {
      var elements = new Array();
    
      for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
          element = document.getElementById(element);
    
        if (arguments.length == 1)
          return element;
    
        elements.push(element);
      }
    
      return elements;
    }
    
    function valore_radiobutton_selezionato(rb) 
    {
    	if(rb == undefined) return null;
    	
    	var n, i, v, m, vv;
    	n = rb.length;
    	if(n != undefined)
    	{
    		v = -1;
    		for (i = 0; i < n; i++)
    		{
    			if (rb[i].checked)
    			{
    				v = i;
    				vv = rb[i].value;
    				break;
    			}
    		}
    		if (v >= 0)
    			return vv;
    		else
    			return null;
    	}
    	else
    	{
    		if(rb.checked) 
    			return rb.value;
    		else
    			return null;
    		
    	}
    	
    }
    
    
    
    window.onload = function()
    {
        $("Checkbox1").onclick = aggiorna;
        
        for(var i = 1; i <= 3; i++) $("r1_" + i).onclick = aggiorna;
        for(var i = 1; i <= 2; i++) $("r2_" + i).onclick = aggiorna;
    }
    
    
    function aggiorna()
    {
        if(valore_radiobutton_selezionato($("form1").r1) == null) return;
        if(valore_radiobutton_selezionato($("form1").r2) == null) return;
        
        var r1 = 0;
        var r2 = 0;
        
        if($("r2_1").checked)
        {
            if($("Checkbox1").checked)
            {
                r1 = ( parseInt(valore_radiobutton_selezionato($("form1").r1),10) + parseInt($("Checkbox1").value, 10) )/10;
            }
            else
            {
                r1 = ( parseInt(valore_radiobutton_selezionato($("form1").r1),10)  )/10;        
            }
            $('Text1').value = r1;
        }
        else
        {
            if($("Checkbox1").checked)
            {
                r2 = ( parseInt(valore_radiobutton_selezionato($("form1").r1),10) + parseInt($("Checkbox1").value, 10) );
            }
            else
            {
                r2 = ( parseInt(valore_radiobutton_selezionato($("form1").r1),10) );        
            }
            $('Text2').value = r2;    
        }
        
        
    }
    
    // ]]>
        </script>    
    </head>
    <body>
        <form id="form1" action="?">
            <input id="Checkbox1" type="checkbox" value="5" />
            
    
            <input id="r1_1" type="radio" name="r1" value="10" />
            <input id="r1_2" type="radio" name="r1" value="20" />
            <input id="r1_3" type="radio" name="r1" value="30" />
            
    
            <input id="r2_1" type="radio" name="r2" value="A" />
            <input id="r2_2" type="radio" name="r2" value="B" />
            <hr />
            <input id="Text1" type="text" />
            <input id="Text2" type="text" />
        </form>
    </body>
    </html>
    Pietro

  3. #3
    proprio stanotte ho tirato fuori questa funzione che va alla grande... che ne dici?

    Codice PHP:
    function aggiorna_campo() {
        
    //alert();
        
    if(document.getElementById("anti").checked==true){
            if(
    document.getElementById("letto_agg").checked==true){
                if(
    document.getElementById("tratt1").checked==true){
                    
    document.getElementById("tratt1").value/10;
                    
    document.getElementById("letto_agg").value/10;
                    
    x+y
                
    }
                else{
                    if(
    document.getElementById("tratt2").checked==true){
                        
    document.getElementById("tratt2").value/10;
                        
    document.getElementById("letto_agg").value/10;
                        
    x+y

                    
    }        
                    else{
                        if(
    document.getElementById("tratt3").checked==true){
                            
    document.getElementById("tratt3").value/10;
                            
    document.getElementById("letto_agg").value/10;
                            
    x+y
                        
    }
                    }
                }
            }
            else{
                if(
    document.getElementById("tratt1").checked==true){
                    
    document.getElementById("tratt1").value/10;
                }
                else{
                    if(
    document.getElementById("tratt2").checked==true){
                        
    document.getElementById("tratt2").value/10;
                    }
                    else{
                        if(
    document.getElementById("tratt3").checked==true){
                            
    document.getElementById("tratt3").value/10;
                        }
                    }
                }
            }
            
    document.getElementById("ant").value z;
                
    document.getElementById("sal").value "";

        }
        else{
                if(
    document.getElementById("sald").checked==true){

            if(
    document.getElementById("letto_agg").checked==true){
                if(
    document.getElementById("tratt1").checked==true){
                    
    document.getElementById("tratt1").value/1;
                    
    document.getElementById("letto_agg").value/1;
                    
    x+y
                
    }
                else{
                    if(
    document.getElementById("tratt2").checked==true){
                        
    document.getElementById("tratt2").value/1;
                        
    document.getElementById("letto_agg").value/1;
                        
    x+y
                    
    }
                    else{
                        if(
    document.getElementById("tratt3").checked==true){
                            
    document.getElementById("tratt3").value/1;
                            
    document.getElementById("letto_agg").value/1;
                            
    x+y
                        
    }

                    }
                }
            }
            else{
                if(
    document.getElementById("tratt1").checked==true){
                    
    document.getElementById("tratt1").value;
                }
                else{
                    if(
    document.getElementById("tratt2").checked==true){
                        
    document.getElementById("tratt2").value;
                    }
                    else{
                        if(
    document.getElementById("tratt3").checked==true){
                            
    document.getElementById("tratt3").value;
                        }

                    }
                }
            }
        }
        
    document.getElementById("sal").value z;
            
    document.getElementById("ant").value "";

        }


    Codice PHP:
              <input name="letto_agg" type="checkbox" id="letto_agg" value="10" onclick="aggiorna_campo()" />

      <
    input name="tratt" type="radio" id="tratt1" onclick="aggiorna_campo()" value="10"/>
            </
    div></td>
            <
    td><div align="center">
                <
    input name="tratt" type="radio" id="tratt2" value="20"onclick="aggiorna_campo()" />
            </
    div></td>
            <
    td><div align="center">
                <
    input name="tratt" type="radio" id="tratt3" value="30" onclick="aggiorna_campo()"/>

     <
    input name="pagamento" type="radio" id ="anti" onclick="aggiorna_campo()" value="1">
            </
    div></td>
            <
    td><div align="center">
              <
    input name="pagamento" id ="sald" type="radio" value="2" onclick="aggiorna_campo()" />
            </
    div></td>
            <
    td><div align="center"></div></td>
            <
    td></td>
            <
    td></td>
          </
    tr>
          <
    tr>
            <
    td>Tot euro</td>
            <
    td><div align="center">
              <
    input name="ant" id="ant" type="text" size="4" />
            </
    div></td>
            <
    td>
              <
    div align="center">
                <
    input name="sal" id="sal" type="text" size="4" /> 
    Lore

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Cosa ne dico? :master:

    Che qualunque cosa fatta da soli, che funzioni, va bene

    ciao
    Pietro

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.