entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Radio button mysql

Hola, necesito ayuda.
Tengo dos opciones radio button y al seleccionar una de ella debe mostrarse otro div . El evento del click me funciona perfectamente pero si grabo el valor del radio en una base de datos mysql al recuperarlo me marca correctamente el radio button pero no consigo mostrar el div durante la carga solo al hacer click. Alguien me puede ayudar . Muchas gracias

            <div >
                <label>Elige</label>
                <input <?php  if($datos_trafico->getopcion1()==1){ echo "checked";} ?> type="radio" name="radio2" id="opt_2_cliente"   value="opt_2_cliente"  onchange='Mostrar_LuzVerde(1)' >
                <label>Cliente</label>
                <input <?php  if($datos_trafico->getBooking()==2){ echo "checked";} ?> type="radio" name="radio2"  id="opt_2_proveedor"  value="opt_2_proveedor"  onchange='Mostrar_LuzVerde(2)' >
                <label>Proveedor</label>
            </div>
                 <div id="LuzVerde" style="display: none" >
                <label>Luz verde</label>
                <input  <?php  if($datos_trafico->getLuzVerde()==1){ echo "checked";} ?>  type="radio" name="radio3" id="opt_2_LuzSi"  value="opt_2_LuzSi">
                <label>Si</label>
                <input  <?php  if($datos_trafico->getLuzVerde()==2){ echo "checked";} ?>  type="radio" name="radio3" id="opt_2_LuzNO"  value="opt_2_LuzNO">
                <label>No</label>
            </div>

function Mostrar_LuzVerde(tipo){
    if (tipo==2){
        $("#LuzVerde").show();       
    }else{        
        $("#LuzVerde").hide();        
    }
    return 0
}

si hago click el div luzverde se muestra correctamente, pero si recargo la pagina con los datos de la base de datos me marca Proveedor pero no me muestra el div

Muchas gracias

0voto

Peter comentado

Por favor edita tu pregunta y comparte tu código, sin verlo difícil decirte dónde esta el error.

Saludos.

1 Respuesta

2votos

magarzon Puntos29810

La función que muestra el div solo se llama en el onchange del radio button, pero cuando recuperas el valor de la base de datos y lo incluyes en la página, es como el valor inicial de ese radio button, no genera ningún evento onchange.

Por tanto, debes llamar a una función que compruebe el valor del radio button en el momento de la carga del documento (también se podría por php comprobar ese valor y aplicar o no el display:none como valor inicial del div). Vamos con el javascript, ya que veo que usas jQuery, sería añadirlo al ready del documento:

$(document).ready(function() {
    var radioValue = $("input[name='radio2']:checked").val();
    if ('opt_2_proveedor' == radioValue) {
       Mostrar_LuzVerde(2);
    }
});

2votos

AUSC comentado

Me funciono correctamente!!

Muchas gracias por tu ayuda

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta