Foros del Web » Programando para Internet » PHP »

Problema con guardado de datos con CHEKBOX

Estas en el tema de Problema con guardado de datos con CHEKBOX en el foro de PHP en Foros del Web. Buenas tardes! Estoy teniendo dificultades con guardar datos en mi bd de una aplicacion en la que estoy trabajando (sistema de abogados). Bien, necesito asignar ...
  #1 (permalink)  
Antiguo 23/05/2012, 15:34
 
Fecha de Ingreso: abril-2012
Mensajes: 65
Antigüedad: 12 años
Puntos: 0
Problema con guardado de datos con CHEKBOX

Buenas tardes!

Estoy teniendo dificultades con guardar datos en mi bd de una aplicacion en la que estoy trabajando (sistema de abogados).

Bien, necesito asignar diferentes datos (causas) a usuarios para que las trabajen, por lo que desplegue la informacion traida desde una query en una grilla.

agrega un chekbox al inicio y al final un listbox con los usuarios que deberian trabajar las filas seleccionadas.

Puers bien funciona bien guardando solo el ultimo, los demas aunque esten seleccionados no se guardan en la BD.

Adjunto capturas



Seleccionada un par y un usuario del listbox


En la URL puedo ver (form GET) que me toma bien las variables que quiero guardar (relacion y usuario)


Pero en la BD solo guarda el ultimo dato


El codigo


Código PHP:
<?
$con 
mysql_connect('localhost''blabla''xxxxx');
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }
mysql_query("SET NAMES 'utf8'");
mysql_select_db("auditoria_asesor"$con);

$usuariomysql_query("SELECT * FROM asesores");

$sql1 "
SELECT
        *
FROM 
        base_auditoria
limit 0,5    "
;

$res mysql_query($sql1);

echo 
"<table width='100%' border='1' cellspacing='1'>
<tr>
<th>Asignar</th>
<th>Ruc</th>
<th>ID Relación</th>
<th>Fiscalía</th>

<th>Estado</th>
<th>Fiscal</th>
<th>Glosa</th>
</tr>"
;
echo
"<form action='' method='GET' name='form1'>"
while(
$row mysql_fetch_array($res))

  {

  echo 
"<tr>";
  echo 
"<td width='50' align='center'><input name='crr_idrelacion' type='checkbox' value=" $row['crr_idrelacion'] . " /></td>";
  echo 
"<td width='80'>" $row['idf_rolunico'] . "</td>";
  echo 
"<td width='40'>" $row['crr_idrelacion'] . "</td>";
  echo 
"<td width='30'>" $row['cod_fiscalia'] . "</td>";
  
  echo 
"<td width='40'>" $row['gls_estcaso'] . "</td>";
  echo 
"<td width='100'>" $row['idf_fiscal'] . "</td>";
  echo 
"<td width='200'>" $row['gls_relacion'] . "</td>";
  echo 
"</tr>";
  
 
  }
echo 
"</table>";

echo 
"<br><p align='center'><select name='users'' onChange='form1.submit()'>
<option value=''>Asignar:</option>"
;

while (
$nomb=mysql_fetch_array($usuario)) {
    
echo 
'<option value="'.$nomb['asesores'].'" ',($nomb['asesores']==$_GET['asesores']) ? 'selected':'','>'.$nomb['asesores'].'</option>';

}
echo 
"</form>"
            
            
            
            
$asesor $_GET['users'];
            
$crr_idrelacion $_GET['crr_idrelacion'];

if (isset(
$users)) { 

            
            
$asignaquery="insert into asignacion_asesor (select '$crr_idrelacion', '$asesor', date_format(now(),'%Y-%m-%d %H:%m:%i')) ";

mysql_query($asignaquery) or die(mysql_error());            
     




?>
en algo estoy fallando, ojala alguien me podria hechar una mano.

Saludos
  #2 (permalink)  
Antiguo 23/05/2012, 19:01
 
Fecha de Ingreso: julio-2006
Mensajes: 13
Antigüedad: 17 años, 9 meses
Puntos: 3
Respuesta: Problema con guardado de datos con CHEKBOX

El problema es que todos los checkbox tienen el mismo nombre reemplaza crr_idrelacion por crr_idrelacion[] así lo tranformas en un arreglo que puedes recorrer para discriminar el que esta chequeado y el que no. Tambien puedes concatenarle el id de la tabla al nombre del checkbox o agregarlo así crr_idrelacion[id_tabla]
  #3 (permalink)  
Antiguo 23/05/2012, 20:49
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Problema con guardado de datos con CHEKBOX

capemp tiene razon, si miras la captura que pusiste notas claramente el problema:

le asignas a la variable el primer valor (bien)
luego le asignas uno nuevo (upss borraste al anterior)
repites este proseso n veces (solo queda el ultimo valor)
la solucion es la que te planteo capemp, crear unn vector de esa manera tendras un conjunto de variables y no perderas los primeros datos.
Código PHP:
Ver original
  1. echo"<form action='' method='GET' name='form1'>";
  2. $indice=0;
  3. while($row = mysql_fetch_array($res))
  4.  
  5.   {
  6. $indice+=1;
  7.   echo "<tr>";
  8.   echo "<td width='50' align='center'><input name='crr_idrelacion".$indice."' type='checkbox' value=" . $row['crr_idrelacion'] . " /></td>";
  9.   echo "<td width='80'>" . $row['idf_rolunico'] . "</td>";
exitos en tu proyecto saludos

Etiquetas: chekbox, guardado, variables, usuarios
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 10:09.