PHP - Modificar valor input radio

 
Vista:
sin imagen de perfil

Modificar valor input radio

Publicado por Aprendiendo (17 intervenciones) el 21/12/2014 15:10:07
Hola a tod@s.

Veréis tengo un pequeño problema que no consigo hacer funcionar.
En una base de datos Mysqli tengo un campo "Disponibilidad" es un campo "tinyint" y se llena "1" o "0" lo que me indica la disponibilidad si es "1" esta disponible si es "0" no esta disponible.

He creado una página "FormularioDisponibilidad.php" que me lee el valor de ese campo dependiendo del id_vehiculo seleccionado y me marca correctamente en dicho formulario que es lo que esta chequeado " Si disponible" o "No disponible".
el problema lo tengo cuando en dicho formulario modifico el input radio que esta chequeado y mediante la página "Enviar_Disponibilidad" intento cambiar el valor de dicho campo,
El problema que me ocurre es que si esta "SI disponible" hay un "1" en el campo de la base de datos, si me deja pasarlo a "NO disponible" pero al contrario no.
No encuentro el fallo, me podéis ayudar. Gracias

FORMULARIODISPONIBILIDAD.PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form name="EnvioDisponibilidad" id="EnvioDisponibilidad" action="Enviar_Disponibilidad.php" method="post">
<?php
	$tabla = mysqli_query($conexion, "SELECT Disponibilidad FROM tb_vehiculos WHERE tb_vehiculos.Id ='". $id_vehiculo . "'");
 
	while ($registro = mysqli_fetch_array($tabla)){
$valorDisponibilidad =  $registro['Disponibilidad'];
}
	mysqli_free_result($tabla);
 
	 if ($valorDisponibilidad == '1'){
             echo '<input type="radio" name="disponibilidad" id="disponibilidad" checked="checked"/>Activado</p>';
			 echo '<input type="radio" name="disponibilidad" id="disponibilidad" />Desactivado Temporalmente';
 
     }else{
             echo '<input type="radio" name="disponibilidad" id="disponibilidad" />Activado</p>';
			 echo '<input type="radio" name="disponibilidad" id="disponibilidad" checked="checked"/>Desactivado Temporalmente';
 
     }
?>
<input type="submit" value="Ingresar" class="BotonIngresarforpersonal"/>&nbsp;&nbsp;
</form>


ENVIAR_DISPONIBILIDAD.PHP
1
2
3
4
5
6
7
<?php
	$disponibilidad = (isset ($_POST["disponibilidad1"]));
    $id_vehiculo = $_SESSION["k_id"];
 
	$query = "UPDATE tb_vehiculos SET Disponibilidad='$disponibilidad' where Id='$id_vehiculo'";
	mysqli_query($conexion, $query) or die(mysqli_error());
?>

Gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Modificar valor input radio

Publicado por Ismael (41 intervenciones) el 21/12/2014 16:58:28
has mirado que le llega cuando recoges del post? $_POST["disponibilidad1"], normalmente cuando manda el formulario manda el valor del input radio que está seleccionado, prueba a poner en los campos input un value:

donde tienes:

1
2
3
4
5
6
7
8
9
if ($valorDisponibilidad == '1'){
             echo '<input type="radio" name="disponibilidad" id="disponibilidad" checked="checked" value="1"/>Activado</p>';
			 echo '<input type="radio" name="disponibilidad" id="disponibilidad"  value="0"/>Desactivado Temporalmente';
 
     }else{
             echo '<input type="radio" name="disponibilidad" id="disponibilidad"  value="1"/>Activado</p>';
			 echo '<input type="radio" name="disponibilidad" id="disponibilidad" checked="checked"  value="0"/>Desactivado Temporalmente';
 
     }

Ya me cuentas,

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Modificar valor input radio

Publicado por aprendiendo24 (17 intervenciones) el 21/12/2014 20:13:44
Gracias Ismael.

No funciona, lo he puesto como me indicas y ahora hace justo lo contrario, si esta el "0" me deja ponerlo a "1", ósea si esta desactivado me deja activarlo.

Lo que me pasa ahora por $_POST["disponibilidad"] siempre es "1", aunque marque el radio" Desactivado Temporalmente", sigo haciendo un millón de pruebas, pero no veo el fallo.

Vamos a ver si entre todos encontramos que es lo que estoy haciendo mal.

PD: En mi anterior post lo de $_POST["disponibilidad1"] es una errata de copiar y pegar en realidad esta bien puesto y lo correcto es $_POST["disponibilidad"]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Modificar valor input radio

Publicado por xve (6935 intervenciones) el 22/12/2014 07:33:53
Creo que tu problema esta en que no tienes puesto el value en el <input type"radio"... como sabes que valor tienes que poner al actualizar??

Prueba a poner algo así:
1
2
<input type="radio" name="disponibilidad" id="disponibilidad" checked="checked" value="1"/>Activado
<input type="radio" name="disponibilidad" id="disponibilidad" value="0" />Desactivado Temporalmente';

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Modificar valor input radio

Publicado por aprendiendo24 (17 intervenciones) el 22/12/2014 08:57:32
xve gracias, lo he probado y no funciona bien.

Ya lo había probado como me indico el compañero Ismael y funcionaba mal siempre me pasa el valor 1 en la variable disponibilidad también lo he probado de la siguiente manera y tengo el mismo problema.

1
2
<input type="radio" name="disponibilidad" id="disponibilidad" value="1" <?php if($valorDisponibilidad=="1") echo 'checked="checked"';?> />
 <input type="radio" name="disponibilidad" id="disponibilidad" value="0" <?php if($valorDisponibilidad=="0") echo 'checked="checked"';?> />

Lo que ocurre es que si esta desactivado el valor del campo es 0 si me deja activarlo ya que seleccione lo que seleccione me envía "1" por la variable $_POST["disponibilidad"] al contrario si esta activado el valor en el campo es "1" no me deja desactivarlo.

Voy a copiar las 2 páginas y eliminar todo el código que según crea no sea necesario y probare de nuevo a ver si por casualidad hay algo que no veo y haga que funcione mal aunque no creo porque estas 2 páginas apenas tienen código

Espero encontrar la solución, no se donde puede estar el problema.

un saludo y gracias por vuestra ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

SOLUCIONADO: Modificar valor input radio

Publicado por aprendiendo24 (17 intervenciones) el 22/12/2014 09:55:19
SOLUCIONADO:

Gracias Ismael y xve.

Ya esta solucionado el problema estaba en la definición de la variable:

estaba así:
1
$disponibilidad = (isset ($_POST["disponibilidad1"]));

y lo correcto era así:
1
$disponibilidad = $_POST["disponibilidad"];

Por supuesto también faltaba lo que me indicasteis lo de poner los "values".

Gracias a tod@s, hasta la próxima.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

SOLUCIONADO: Modificar valor input radio

Publicado por xve (6935 intervenciones) el 22/12/2014 19:32:20
Gracias por compartirlo!!! tienes toda la razón!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar