Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Check dinamicos

Estas en el tema de Check dinamicos en el foro de PHP en Foros del Web. Hola a todos tengo lo siguiente Un script para que al seleccionar algun valor de un select (combo1), el select 2 (combo2) se llene automáticamente ...
  #1 (permalink)  
Antiguo 12/10/2018, 12:34
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.253
Antigüedad: 7 años, 3 meses
Puntos: 8
Check dinamicos

Hola a todos tengo lo siguiente
Un script para que al seleccionar algun valor de un select (combo1),
el select 2 (combo2) se llene automáticamente (Consulta hecha a la base de datos donde los empleados estén asignados a la oficina elegida (combo1))

Todo funciona bien, pero tengo una duda si quisiera que en lugar de un select (combo2) , los empleados se reflejen en check's que puedo hacer
(Estoy perdida) desde ya gracias
Código HTML:
<script language="javascript">
$(document).ready(function(){
	// Parametros para e combo1
   $("#combo1").change(function () {
   		$("#combo1 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo1.php", { elegido: elegido }, function(data){
				$("#combo2").html(data);
				$("#combo3").html("");
			});			
        });
   })
	// Parametros para el combo2
	$("#combo2").change(function () {
   		$("#combo2 option:selected").each(function () {
			//alert($(this).val());
				elegido=$(this).val();
				$.post("combo2.php", { elegido: elegido }, function(data){
				$("#combo3").html("");
			});			
        });
   })
   

   
   
   
});
</script> 
Formulario

Código HTML:
<tr valign="baseline">
      <td height="30" align="right" valign="middle"><div align="left"><font size="2">Oficina:</font></div></td>
        <td height="30" valign="middle">
         <select name="combo1" id="combo1" style="width:191px" >
  <option text="0">Seleccionar</option>
       <?php
	  
	   
$db = new MySQL();  
$db->open();
$consulta = $db->consulta("SELECT * FROM oficinas ");
if ($row = $db->fetch_array($consulta)) {
	do {
		echo 
		'<option value="'.$row[id].'">'.$row[oficina].'</option>';
	}while($row = $db->fetch_array($consulta));
}
?> 
      </select>
         </td>
      </tr>
    
    <tr valign="baseline">
    <td align="right" valign="middle"><div align="left"><font size="2">Empleados:</font></div></td>
    <td valign="middle">
    <select name="combo2" id="combo2" style="width:191px" >
    </td> 


combo1.php
Aquí hago la consulta para obtener los valores de combo2

Código PHP:
<?php

$consulta 
$db->consulta("SELECT * FROM empleados WHERE oficina LIKE '$_POST[elegido]' ");
echo 
'<option value="0">Seleccione </option> ';
if (
$row $db->fetch_array($consulta)) {
    do {
        echo 
        
'<option value="'.$row['idempelado'].'">'.$row['Nombre']." ".$row['ApellidoPaterno']." ".''.($row['ApellidoMaterno']).'</option>';
    }while(
$row $db->fetch_array($consulta));
}
?>
  #2 (permalink)  
Antiguo 12/10/2018, 20:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.874
Antigüedad: 10 años, 2 meses
Puntos: 2152
Respuesta: Check dinamicos

Si necesitas seleccionar varios empleados, lo puedes hacer con un select múltiple o con checkboxes, como lo planteas:

Select: Basta con hacer que combo2 sea array (nombre con corchetes al final) y agregar el atributo multiple en la etiqueta de apertura
Código HTML:
Ver original
  1. <select name="combo2[]" id="combo2" style="width:191px" multiple>

Con checkboxes:
Código PHP:
Ver original
  1. // En lugar de crear la etiqueta select haz un div para mostrar ahí los checkboxes
  2. echo "<div id=\"combo2\">\n";
  3. echo "</div>\n";
  4.  
  5. // Cuando tengas que crear los checkboxes:
  6. $consulta = $db->consulta("SELECT * FROM empleados WHERE oficina LIKE '$_POST[elegido]' ");
  7. if ($row = $db->fetch_array($consulta)) {
  8.     do {
  9.         echo  "<input type=\"checkbox\" name=\"combo2[]\" value=\"{$row['idempelado']}\"> {$row['Nombre']} {$row['ApellidoPaterno']} $row['ApellidoMaterno']<br>\n";
  10.     }while($row = $db->fetch_array($consulta));
  11. }
  12.  
  13. // Cuando vayas a procesar los datos, ya sea de select múltiple o checkboxes
  14. // combo2 es un array con id de los empleados seleccionados
  15. var_dump($_POST['combo2']);
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/10/2018, 10:01
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.253
Antigüedad: 7 años, 3 meses
Puntos: 8
Respuesta: Check dinamicos

Gracias Triby
con los cheks quedo super bien



La zona horaria es GMT -6. Ahora son las 01:15.