Foros del Web » Programando para Internet » Javascript »

ver o no ver, y comprobacion de radius

Estas en el tema de ver o no ver, y comprobacion de radius en el foro de Javascript en Foros del Web. Hola, soy nuevo en esto del PHP, y la verdad, ya tengo una edad como para perder la memoria cada 5 minutos. La duda que ...
  #1 (permalink)  
Antiguo 27/04/2010, 03:27
 
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Exclamación ver o no ver, y comprobacion de radius

Hola, soy nuevo en esto del PHP, y la verdad, ya tengo una edad como para perder la memoria cada 5 minutos.
La duda que planteo es la siguiente, tengo un formulario, en el cual me gustaria que cierta parte de el, solo se viera si chekeo uno de los radius. Para explicarme mejor, pongo el codigo.

Código:
<form id="imaform" method="post" onsubmit="return validacion()" action="formugenio.php">

	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">Televisor</LEGEND>
		<p>¿Ten&iacute;a el cliente un televisor compatible con alta definici&oacute;n?</p>
		<input type="radio" name="tvhd"  value="Si"> Si<br>
		<input type="radio" name="tvhd"  value="No"> No<br>
	</FIELDSET>
 
 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">Conexi&oacute;n</LEGEND>
	<p>¿C&oacute;mo conect&oacute; el descodificador al televisor?</p>
	<input type="radio" name="cable"  value="A través de HDMI"> A trav&eacute;s de HDMI<br>
	<input type="radio" name="cable"  value="A través deEuroconector"> A trav&eacute;s de Euroconector<br>
	<input type="radio" name="cable"  value="Con ambos cables"> Con ambos cables<br>
	</FIELDSET>
 
 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">Modo de Video</LEGEND>
	<p>¿Qu&eacute; modo de video qued&oacute; seleccionado en el descodificador? </p> 
	<input type="radio" name="defin"  value="1080i"> 1080i<br>
	<input type="radio" name="defin"  value="720p"> 720p<br>
	<input type="radio" name="defin"  value="HDMI+Euroconector"> HDMI+Euroconector<br>
	<input type="radio" name="defin"  value="Euroconector" onclick="AQUI ESTA LA MADRE DEL CORDERO"> Euroconector<br></TD>
	</FIELDSET> 
 
		<!-- Emergente si selecciona euroconector -->
		<FIELDSET STYLE="width: 97%; border-color: lime; class: oculto"><LEGEND STYLE="color: #FF0000; font-weight: bold">HDMI</LEGEND>
		<P>En caso de que lo haya conectado por Euroconector, ¿dej&oacute; al cliente el cable HDMI por si lo necesita en adelante?</P>
		<input type="radio" name="deca"  value="Si"> Si<br>
		<input type="radio" name="deca"  value="No"> No<br>
		</FIELDSET>
		<!-- Fin Emergente si selecciona euroconector -->

 
 
	<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">Diferencia de Calidad</LEGEND>
	<p>¿Ha percibido el cliente diferencia entre los canales HD y SD mostrandole los caneles 100 y 106?</p> 
 
	<input type="radio" name="dife"  value="Si"> Si<br>
	<input type="radio" name="dife"  value="No"> No<br>
	</FIELDSET>
  <div>
                        <label for="notas">
                                <span style="color:#c00;">*</span>Observaciones
                        </label><BR>
                        <textarea name="notas" id="notes" rows="5" cols="69" onkeyup="val=this.value; if (val.length > 128) { alert('Lo siento, has sobrepasado el limite de 128 caracteres'); this.value = val.substring(0,128); }  this.form.count.value=128-parseInt(this.value.length); ">Comentarios</textarea>
                </div>
	<!-- Comprobamos los caracteres escritos -->				  
					    <div>
                        <label for="count">Caracteres disponibles:</label>
                                 <input type="text" name="count" id="counter" value="128" size="2" />
                                <?php $text_len = preg_match_all('/./', $str, $dummy); ?>
                       </div>
					  
	 <!-- Comprobamos los caracteres escritos -->
 
	<p><input type="submit" id="submit" name="send" value="Enviar &raquo;" title="Pulsa una vez para enviar el formulario." onfocus="send.php" >  
 
	<input type="reset" value="Borrar Formulario" name="Borra"></p> 
	 </FORM>
Como veis, en la parte roja, me gustaria que al escoger la opcion euroconector, se viese en el formulario la parte verde, pero si se escoge otra opcion, esta parte verde no se vea.
Por otra parte, me gustaria saber como validar estos radio butons, con javascript en cliente, y darle otra validacion con php en server.

Datos.

Esta aplicacion recogera los datos de formulario y los introducira en una tabla de oracle.

Muchisimas gracias de antemano, y seguro que aparezco por aki bastante a menudo.
  #2 (permalink)  
Antiguo 27/04/2010, 07:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ver o no ver, y comprobacion de radius

Si no quieres que se refresque la página y que puedas perder los datos ya escrito anteriormente, debes usar una mezcla de javascript con CSS. Si deseas trabajarlo con javascript espera que un moderador te mueva al foro correspondiente para que te puedan ayudar.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/04/2010, 07:51
 
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: ver o no ver, y comprobacion de radius

Bueno, realmente ya he probado algo como:

<script>
function ver(n) {
if (document.getElementById(n).style.display=='block' ) {
document.getElementById(n).style.display='none';
} else {
document.getElementById(n).style.display='block';
}
}
</script>


Y luego en el form:

<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">Modo de Video</LEGEND>
<p>¿Qu&eacute; modo de video qued&oacute; seleccionado en el descodificador? </p>
<input type="radio" name="defin[]" value="1080i"> 1080i<br>
<input type="radio" name="defin[]" value="720p"> 720p<br>
<input type="radio" name="defin[]" value="HDMI+Euroconector"> HDMI+Euroconector<br>
<input type="radio" name="defin[]" onclick="ver('hdmi');" value="Euroconector"> Euroconector<br>
</FIELDSET>

<div id="hdmi" style="display:none">
<!-- Emergente si selecciona euroconector -->
<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">HDMI</LEGEND>
<P>En caso de que lo haya conectado por Euroconector, ¿dej&oacute; al cliente el cable HDMI por si lo necesita en adelante?</P>
<input type="radio" name="deca[]" value="Si"> Si<br>
<input type="radio" name="deca[]" value="No"> No<br>
<!-- Fin Emergente si selecciona euroconector -->
</FIELDSET>
</div>


Pero esto funciona como un conmutador, es decir, cada vez que hago clic en el boton radio, se ve o no se ve el <div hdmi>, incluso cuando se esta viendo si seleccionas otro boton radio, se sigue viendo, cuando tendria que desaparecer de la vista, ya que no se selecciona el boton que deberia desencadenar la vista.

Gracias por tu atencion.

Saludos.
  #4 (permalink)  
Antiguo 27/04/2010, 08:33
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: ver o no ver, y comprobacion de radius

Podria solucionarse que cuando den click en los demas radios buttons, algo asi:

<script>
function quitar(n) {
document.getElementById(n).style.display='none';
}


function ver(n) {
if (document.getElementById(n).style.display=='block' ) {
document.getElementById(n).style.display='none';
} else {
document.getElementById(n).style.display='block';
}
}
</script>


Se solucionaria si

<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">Modo de Video</LEGEND>
<p>¿Qu&eacute; modo de video qued&oacute; seleccionado en el descodificador? </p>
<input type="radio" name="defin[]" onclick="quitar('hdmi');" value="1080i"> 1080i<br>
<input type="radio" name="defin[]" onclick="quitar('hdmi');" value="720p"> 720p<br>
<input type="radio" name="defin[]" onclick="quitar('hdmi');" value="HDMI+Euroconector"> HDMI+Euroconector<br>
<input type="radio" name="defin[]" onclick="ver('hdmi');" value="Euroconector"> Euroconector<br>
</FIELDSET>

<div id="hdmi" style="display:none">
<!-- Emergente si selecciona euroconector -->
<FIELDSET STYLE="width: 97%; border-color: lime"><LEGEND STYLE="color: #FF0000; font-weight: bold">HDMI</LEGEND>
<P>En caso de que lo haya conectado por Euroconector, ¿dej&oacute; al cliente el cable HDMI por si lo necesita en adelante?</P>
<input type="radio" name="deca[]" value="Si"> Si<br>
<input type="radio" name="deca[]" value="No"> No<br>
<!-- Fin Emergente si selecciona euroconector -->
</FIELDSET>
</div>
  #5 (permalink)  
Antiguo 27/04/2010, 08:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP a Javascript
  #6 (permalink)  
Antiguo 27/04/2010, 09:16
 
Fecha de Ingreso: abril-2010
Ubicación: Valencia
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: ver o no ver, y comprobacion de radius

A veces te ciegas en un camino, y tienes el destino a tu lado. Una solucion logica y practica que funciona a la perfeccion.

Muchisimas gracias BaEEz por abrirme los ojos.

Saludos.

P.D. en cuanto a la validacion de los datos, ya esta todo OK.



Edito el post, por si le hace falta a alguien, porque he hecho una pequeña correccion en el script, que deberia quedar asi:

<script>
function quitar(n) {
document.getElementById(n).style.display='none';
}


function ver(n) {
document.getElementById(n).style.display=='block'
}
</script>

de esta forma se evita que al pulsar dos veces en el radius, conmute.

Gracias de nuevo y Saludos.

Última edición por jomiferdo; 28/04/2010 a las 04:28 Razón: mejor opcion

Etiquetas: comprobacion, ver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:42.