Foros del Web » Programando para Internet » Javascript »

Problemas con RadioButton en PHP

Estas en el tema de Problemas con RadioButton en PHP en el foro de Javascript en Foros del Web. Hola a todos, les comento un pequeño problema que tengo con el uso del radiobutton con php. El problema esta cuando utilizo un grupo de ...
  #1 (permalink)  
Antiguo 10/06/2009, 14:32
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Problemas con RadioButton en PHP

Hola a todos, les comento un pequeño problema que tengo con el uso del radiobutton con php. El problema esta cuando utilizo un grupo de radiobutton, como ustedes o vosotros saben, este tipo de botones te da la opcion de quitar el "foco" de un boton cuando se selecciona otro. Pues bien, solo tenfo dos botones uno con un value=0 y el otro value=1 y el nombre de boton es "dr".

<input type="radio" name="dr" value="0" id="dr_0" />
<input type="radio" name="dr" value="1" id="dr_1" />

Pero cuando ejecuto la aplicacion desde el navegardor, me manda un error de "indefinido" en la variable que captura el valor de este boton, pero si utilizo un nombre diferente para cada boton no hay problema (funciona correctamente), solo que se pieerde la funcion de poner o quitar el "foco" de cada opcion seleccionada.

Por cierto estoy utilizando Ajax, Mysql, Php.

Alguien podria decirme como solucionar este problema. Gracias
  #2 (permalink)  
Antiguo 10/06/2009, 14:56
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 2
explica mejor el error....

intenta ponerles ID diferentes, aunque a mi me parece algo extraño porque (bueno en mi caso uso xajax...) nunca me ha pasado algo asi

Última edición por GatorV; 10/06/2009 a las 19:47
  #3 (permalink)  
Antiguo 10/06/2009, 14:59
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: Problemas con RadioButton en PHP

Cual es el codigo de javascript que usas para quitar el foco?

Por si acaso para trabajar con radio button en javascript tienes que declararlos de esta forma
document.nombreForm.dr[0].value;
document.nombreForm.dr[1].value;

asi con todas las funciones como ejemplo
document.nombreForm.dr[0].focus();
document.nombreForm.dr[1].focus();
  #4 (permalink)  
Antiguo 10/06/2009, 14:59
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Problemas con RadioButton en PHP

Pon el codigo que usas para acceder a los valores de los radios.
A ver quien responde primero!!
__________________
I am Doyle please insert code.
  #5 (permalink)  
Antiguo 10/06/2009, 15:26
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Problemas con RadioButton en PHP

En el codigo que colocaste no hay error...
muy probable este en el javascript..

Coloca el error para revisar que es.
  #6 (permalink)  
Antiguo 10/06/2009, 16:22
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problemas con RadioButton en PHP

Gracias a todos por responder, pues bien este es el codigo que estoy utilizando:

en el archivo INDEX.PHP
Código PHP:
<script type="text/javascript" src="ajax.js"></script>
<script language="javascript" type="text/javascript">

function activar1(ej){
document.getElementsByName('entrada')[0].disabled=false;
document.getElementsByName('salida')[0].disabled=false;
document.getElementsByName('boton1')[0].disabled=false;
document.getElementsByName('boton2')[0].disabled=false;
document.ej.dr_0[0].value();
}
function activar2(ej){
document.getElementsByName('entrada')[0].disabled=true;
document.getElementsByName('salida')[0].disabled=true;
document.getElementsByName('boton1')[0].disabled=true;
document.getElementsByName('boton2')[0].disabled=true;
document.ej.dr_1[1].value();
}

function validar(ej){
 enviarDatosPrestamo(); return false
  document.ej.submit();
}

</script>


<body>
<center>
<img src="imagenes/libro.gif" width="253" height="129"/>
<p>&nbsp;</p>
<h2>Modificar Datos del Prestamo</h2>
<p><h3>Clic en la clave del Libro para modificar sus datos. </h3></p>
<div id="formulario">
</div>
<div id="resultado"><?php include('consulta.php');?></div>
</center>
</body>


En otro archivo o fichero PHP tengo lo siguiente:


Código PHP:

<form name="ej" action="" >

<table width="526" border="1">
<tr>
    <td width="167">Clave del Libro</td>
    <td colspan="2"><input name="numero" type="text" size="6" maxlength="6" value="<?php echo $idlib?>"  disabled="disabled" /></td>
</tr>
  <tr>
    <td>Titulo del Libro</td>
    <td colspan="2"><input type="text" name="titulo" size="30" maxlength="30" value="<?php echo $title?>"  disabled="disabled" /></td>
  </tr>
   <tr>
    <td>Autor</td>
    <td colspan="2"><input type="text" name="autor"  size="20" maxlength="20" value="<?php echo $auto?>"  disabled="disabled"  />    </td>
  </tr>
  <tr>
    <td>Clave del Alumno</td>
    <td colspan="2"> <input name="codigo" type="text" size="9" maxlength="9" value="<?php  echo $alumno?>"/>    </td>
  </tr>
  <tr>
    <td>Grupo</td>
    <td colspan="2"><input name="grupo" type="text" size="6" maxlength="6" value="<?php echo $gpo;  ?>" /></td>
  </tr>
    <tr>
      <td height="38">&nbsp;</td>
      <td width="121"><input type="radio" name="dr" value="0"  id="dr_0"  onclick="activar1()" />Devolver<br /> 
                      <input type="radio" name="dr" value="1"  id="dr_1" onclick="activar2()" />Renovar<br />      </td>
      

<input type="button" name="Submit" value="Enviar" onclick="validar(ej)" />
</form>
En el archivo AJAX esto es lo que tengo:

Código PHP:

function enviarDatosPrestamo(){
    
//donde se mostrará lo resultados
    
divResultado document.getElementById('resultado');
    
divFormulario document.getElementById('formulario');
    
divResultado.innerHTML'<img src="imagenes/cargando.gif">';
    
    
//valores de los cajas de texto
  
iclave=document.ej.numero.value;
  
ititulo=document.ej.titulo.value;
  
iautor=document.ej.autor.value;
  
icodigo=document.ej.codigo.value;
  
igrupo=document.ej.grupo.value;  
  
ientrada=document.ej.entrada.value;
  
isalida=document.ej.salida.value;
  
irenovar=document.ej.dr.value;
  
    
    
//instanciamos el objetoAjax
    
ajax=objetoAjax();
    
//usando del medoto POST
    //archivo que realizará la operacion ->actualizacion.php
    
ajax.open("POST""actualizacion.php",true);
    
ajax.onreadystatechange=function() {
        if (
ajax.readyState==4) {
            
//mostrar los nuevos registros en esta capa
            
divResultado.innerHTML ajax.responseText
            
//una vez actualizacion ocultamos formulario
            
divFormulario.style.display="none";

        }
    }
    
//hacemos uso de un formulario
    
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
//enviando los valores
    
ajax.send("numero="+iclave+"&titulo="+ititulo+"&autor="+iautor+"&codigo="+icodigo+"&grupo="+igrupo+"&entrada="+ientrada+"&salida="+isalida+"&dr="+irenovar)

Y el archivo que se encarga de hacer la llamada a la funcion para acceder a la base de datos es la siguiente:


Código PHP:

include_once("cLibro.php");

$idlib=$_POST["numero"];
$atit=$_POST["titulo"];
$aaut=$_POST["autor"];
$acod=$_POST["codigo"];
$agpo=$_POST["grupo"];
$apres=$_POST["entrada"];
$adev=$_POST["salida"];
$arenovar=$_POST["dr"];
sleep(2);
//actualiza los datos del libro
$objlibro = new cLibro;
if (
$objlibro->actualizar($idlib,$atit,$aaut,$acod,$agpo,$apres,$adev,$arenovar)==true){
    echo 
"Datos Actualizados";
    echo 
"<br>";
    echo 
$adev;
    echo 
"<br>";
    echo 
$arenovar////  ES AQUI DONDE AL CORRER EL PROGRAMA DE MANDA EL MENSAJE QUE ERROR DE VALOR INDEFINIDO (undefined)
    
}
else{
    echo 
"No se pudo actualizar";
    }
include(
'consulta.php'); 
Y por ultimo el archivo que realiza la actulizacion a la BD


Código PHP:

 
function actualizar($idlib,$atit,$aaut,$acod,$agpo,$apres,$adev,$arenovar){
           
$con = new DBManager;
        if(
$con->conectar()==true){
            
$query "UPDATE prestamos SET titulo='$atit', autor='$aaut', claveAL='$acod', grupo='$agpo', fechaPres='$apres', fechaDev='$adev', estado='$arenovar'
                      WHERE claveLB ='$idlib' "
;
            
$result = @mysql_query($query);
            if(!
$result)
                return 
false;
            else
                return 
true;
    }
    
   } 

Quizas como ustedes dicen, posiblemente el error este en el JacaScript de INDEX.PHP
  #7 (permalink)  
Antiguo 10/06/2009, 16:25
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: Problemas con RadioButton en PHP

Aqui esta el problema


iclave=document.ej.numero.value;
ititulo=document.ej.titulo.value;
iautor=document.ej.autor.value;
icodigo=document.ej.codigo.value;
igrupo=document.ej.grupo.value;
ientrada=document.ej.entrada.value;
isalida=document.ej.salida.value;
irenovar=document.ej.dr.value;

dale un alert() para que veas que es lo que te lanza
alert(document.ej.dr.value);

Me dejas saber
  #8 (permalink)  
Antiguo 10/06/2009, 17:09
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problemas con RadioButton en PHP

Pues sigue mandando: undefined
La alerta la puse despues de la variable
  #9 (permalink)  
Antiguo 10/06/2009, 17:13
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Problemas con RadioButton en PHP

irenovar=document.ej.dr[0].value;
alert(irenovar);
  #10 (permalink)  
Antiguo 10/06/2009, 17:54
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: Problemas con RadioButton en PHP

Eso era para que vieras lo que sucede, tienes que hacer como te dijo neverhags, mi sugerencia es que hagas un if verificando cual esta seleccionado ejemplo

if(document.ej.dr[0].checked){
irenovar=document.ej.dr[0].value;
}else{
irenovar=document.ej.dr[1].value;
}

me dejas saber. Si vas a crear mas de dos tienes que crear la estructura del if, else if, else, y verificarlos en el orden en que aparecen en la pagina
  #11 (permalink)  
Antiguo 10/06/2009, 18:41
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problemas con RadioButton en PHP

Muchas gracias a todos, ahora si ya funciona
  #12 (permalink)  
Antiguo 10/06/2009, 19:47
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
Respuesta: Problemas con RadioButton en PHP

Tema trasladado desde PHP
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 20:31.