Foros del Web » Programando para Internet » PHP »

Actualizar por checkbox

Estas en el tema de Actualizar por checkbox en el foro de PHP en Foros del Web. Hola, tengo la siguiente tabla realizo una consulta y obtengo valores. lo que quiero realizar es que al seleccionar varios checkbox y le de click ...
  #1 (permalink)  
Antiguo 04/11/2014, 14:14
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Actualizar por checkbox

Hola, tengo la siguiente tabla realizo una consulta y obtengo valores.

lo que quiero realizar es que al seleccionar varios checkbox y le de click en submit se actualicen únicamente las lineas de los checkbox seleccionados por un valor "Aprobada o Rechazada" en la base de datos, espero me puedan ayudar con algún código de ejemplo, gracias.




saludos.
  #2 (permalink)  
Antiguo 05/11/2014, 06:08
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Actualizar por checkbox

Hay varias formas de hacerlo. Podés ponerle a cada checkbox de value el string aprobada/ rechazada junto con el id que corresponde a ese registro separado por un guión y hacer un explode cuando recibas la info por ejemplo!

Es gusto de cada uno
  #3 (permalink)  
Antiguo 05/11/2014, 07:36
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Actualizar por checkbox

GeekGirl podrías dejarme un ejemplo en código para entender un poco mejor?
  #4 (permalink)  
Antiguo 05/11/2014, 08:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar por checkbox

Básicamente necesitas algo de HTML así:
Código HTML:
Ver original
  1. <input name="accepted[]" value="1"><input name="rejected[]" value="1">
  2. <input name="accepted[]" value="2"><input name="rejected[]" value="2">
  3. <input name="accepted[]" value="99"><input name="rejected[]" value="99">

Básicamente los valores 1, 2 y 99 son los IDs en cuestión mientras que "accepted" y "rejected" son matrices que se enviarán con los valores seleccionados.

Al recibir los datos tienes dichas matrices con los valores elegidos, ya de ahí puedes implementar alguna solución con ello.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 05/11/2014, 08:21
 
Fecha de Ingreso: abril-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: Actualizar por checkbox

Hola linuxchucho, lo que debes hacer es lo siguiente en tu php

Código HTML:
<input type="checkbox" name="aprobada[<? echo $id_aprobada; ?>]" id="aprobada[<? echo $id_aprobada; ?>]" value="S" /> Aprobada
<input type="checkbox" name="recahazada[<? echo $id_rechazada; ?>]" id="recahazada[<? echo $id_rechazada; ?>" value="S" /> Rechazada
y el resultado de tu html sería:

Código HTML:
<input type="checkbox" name="aprobada[1]" id="aprobada[1]" value="S" /> Aprobada
<input type="checkbox" name="recahazada[1]" id="recahazada[1]" value="S" /> Rechazada
<input type="checkbox" name="aprobada[2]" id="aprobada[2]" value="S" /> Aprobada
<input type="checkbox" name="recahazada[2]" id="recahazada[2]" value="S" /> Rechazada
....
<input type="checkbox" name="aprobada[n]" id="aprobada[n]" value="S" /> Aprobada
<input type="checkbox" name="recahazada[n]" id="recahazada[n]" value="S" /> Rechazada


Ahora bien, lo que acabas de realizar es una variable del tipo array (dos en este caso), la cual deberás procesar y saber cual hizo clic el usuario.

Para ello... cuando proceses el formulario, recorre cada array de la siguiente forma:

Código PHP:
foreach($_POST['aprobada']) as $i => $valor){
     echo 
$i.' => '.$valor.'<br>';
}

foreach(
$_POST['rechazada']) as $i => $valor){
     echo 
$i.' => '.$valor.'<br>';


De esta forma verás que a tu array $i es el id de tu base de datos (id_aprobada, id_rechazada) y $valor será en este caso "S", y el foreach se encargará de mostrarte solamente aquellos valores donde el usuario activo....

Prueba, es muy sencillo!
Suerte
Saludos
  #6 (permalink)  
Antiguo 05/11/2014, 08:47
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Actualizar por checkbox

lo tengo de la siguiente manera, por favor ayúdenme!!!

Código PHP:
include('conexion.php');    
$ID= array();
$StatusF1= array();
$Comentario= array();
 
foreach(
$_POST['ID'] as $key=>$value)
    
$ID[]= $value;
 
foreach(
$_POST['StatusF1'] as $key=>$value)
    
$StatusF1[]= $value;
 
foreach(
$_POST['Comentario'] as $key=>$value)
    
$Comentario[]= $value;

for(
$i=0$i<count($StatusF1); $i++)
            {
            
$sSQL="Update CXPD Set Status='$StatusF1[$i]', Comentario='$Comentario[$i]' where ID='$ID[$i]'"
mysql_query($sSQL)or die('La consulta SQL contiene errores.'.mysql_error());
            }
mysql_close(); 
Código HTML:
<form method='POST' action='update_f1.php'> 
		<tr>	
		 <td><input type='text' name='ID[]' size='1' value=$row[0] readonly></td>
		 <td><div class='cell'> $row[1] </div></td>
         <td><div class='cell'> $row[2] </div></td>
         <td><div class='cell'> $row[3] </div></td>
         <td><div class='cell'> $row[4] </div></td>
		 <td><div class='cell'> $row[5] </div></td> 
		 <td><div class='cell'> $row[6] </div></td> 
		 <td>
		 <div class='cell'>
		 <input name='StatusF1[]'  type='checkbox' value='Aprobada' class='ck_Ap'>Aprobada
		 <input name='StatusF1[]' type='checkbox' value='Rechazada' class='ck_Re'>Rechazada
		 </div>		
		 </td>
		 <td>
		 <select name='Comentario[]'>
		 <option value='".$row[7]."' selected>".$row[7]."</option> 
		 <option value='Falta de comprobantes'>Falta de comprobantes</option>
		 <option value='Sin '>Sin </option>
		 <option value='Sin PO'>Sin PO</option>
		 <option value='Sin Soporte'>Sin soporte</option>
		 <option value='Sin XML'>Sin XML</option>
		 </select>		 
		 </td>
		 <td><div class='cell'><a href=".$row[8]." target='_blank'>Factura</a> </div></td>
		 <td ><div class='cell'><a href=".$row[9]." target='_blank'>PO</a> </div></td>
		 <td ><div class='cell'><a href=".$row[10]." target='_blank'>Soporte</a> </div></td>
		 <td ><div class='cell'><a href=".$row[11]." target='_blank'>xml</a> </div></td>
		</tr> 

Última edición por linuxchucho; 05/11/2014 a las 11:51

Etiquetas: checkbox, tabla
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 00:46.