Foros del Web » Programando para Internet » PHP »

Problema con checkboxes

Estas en el tema de Problema con checkboxes en el foro de PHP en Foros del Web. Buenas tardes, soy nuevo en el foro, disculpen los posibles errores que puedan haber en mi publicación. Desde hace unos días he estado trabajando en ...
  #1 (permalink)  
Antiguo 20/07/2012, 12:59
 
Fecha de Ingreso: julio-2012
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Problema con checkboxes

Buenas tardes, soy nuevo en el foro, disculpen los posibles errores que puedan haber en mi publicación.

Desde hace unos días he estado trabajando en un formulario de búsqueda. Dicha búsqueda debe hacerse según ciertos criterios que se deben seleccionar en checkboxes. En este caso almacenes, clases, categorias.

El problema que tengo es que al pulsar un botón submit para ejecutar una consulta a mi base de datos aún cuando no he marcado ningún check en la consulta aparecen los valores de estos check y tengo varios días dándole vueltas al asunto y aún no consigo solución.

El código de mi proceso es el siguiente


Código PHP:
if ( isset ( $_POST['importar'] ) ){
                
$sqlImportar "SELECT a.Referencia AS ref, a.Descripcion AS descp, c.Categoria AS cat, cl.Clase AS clase,
                alm.Codigo AS cod, alm.Nombre AS almacen, alm.Codigo AS cod, aa.Cantidad AS cantidad
                FROM
                Articulos AS a JOIN Categorias AS c ON a.IDCategoria = c.ID JOIN Clases AS cl ON a.IDClase = cl.ID JOIN 
                AlmacenArticulos AS aa ON aa.Referencia = a.Referencia JOIN Almacenes AS alm ON alm.Codigo = aa.CodigoAlmacen
                WHERE
                a.IDCuenta = '$idcuenta' AND c.IDCuenta = '$idcuenta' AND cl.IDCuenta = '$idcuenta' AND alm.IDCuenta = '$idcuenta'
                AND aa.IDCuenta = '$idcuenta'"
;
                
                
//Filtro Almacenes
                
if ( count$_POST['almacenes'] ) > ){
                    
$i 0;
                    foreach( 
$_POST['almacenes'] as $almacen ){
                        echo 
$almacen."<br>";
                        if ( 
$i == ){
                            
$sqlImportar .= " AND (";
                            
$sqlImportar .= "alm.Codigo = '$almacen'";
                            } else {
                                
$sqlImportar .= " OR alm.Codigo = '$almacen'";
                                }
                        
$i++;
                        }
                        
$sqlImportar .= ")";
                    }
                
                
//Filtro Clases    
                
if ( count$_POST['clases'] ) > ){
                    
$j 0;
                    foreach( 
$_POST['clases'] as $clase ){
                        if ( 
$j == ){
                            
$sqlImportar .= " AND (";
                            
$sqlImportar .= "a.IDClase = '$clase'";
                            } else {
                                
$sqlImportar .= " OR a.IDClase = '$clase'";
                                }
                        
$j++;
                        }
                    
$sqlImportar .= ")";
                }
                                     
                
//Filtro Categorias
                
if ( count$_POST['categorias'] ) > ){
                    
$j 0;
                    foreach( 
$_POST['categorias'] as $categoria ){
                        if ( 
$j == ){
                            
$sqlImportar .= " AND (";
                            
$sqlImportar .= "a.IDCategoria = '$categoria'";
                            } else {
                                
$sqlImportar .= " OR a.IDCategoria = '$categoria'";
                                }
                        
$j++;
                        }
                    
$sqlImportar .= ")";
                }
                
                
$rsImportar mssql_query$sqlImportar );
                
$result mssql_num_rows$rsImportar ); 
Los checks los creo de la siguiente manera:

Código PHP:
<table width="150" id="almacenes" class="tablaFiltro">
                    <?php 
                    $sql 
"SELECT Codigo,Nombre FROM Almacenes WHERE IDCuenta = '$idcuenta'";
                    
$rs mssql_query$sql );
                    
$resultados mssql_num_rows$rs );
                    if ( 
$resultados ){
                        
$i 0;
                        while ( 
$rows mssql_fetch_array$rs ) ){
                            echo 
"<tr>";
                            echo 
"<td><input type='checkbox' id='alm".$i."' name='almacenes[]' value='".$rows['Codigo']."' />
                            "
.$rows['Nombre']."</td>";
                            echo 
"</tr>";
                            
$i++;
                            }
                        }
                    
?>
                </table>
                <table width="150" id="clases" class="tablaFiltro">
                    <?php 
                    $sql 
"SELECT ID,Clase FROM Clases WHERE IDCuenta = '$idcuenta'";
                    
$rs mssql_query$sql );
                    
$resultados mssql_num_rows$rs );
                    if ( 
$resultados ){
                        
$i 0;
                        while ( 
$rows mssql_fetch_array$rs ) ){
                            echo 
"<tr>";
                            echo 
"<td><input type='checkbox' id='clase".$i."' name='clases[]' value='".$rows['ID']."' />
                            "
.$rows['Clase']."</td>";
                            echo 
"</tr>";
                            
$i++;
                            }
                        }
                    
?>
                </table>
                <table width="150" id="categorias" class="tablaFiltro">
                    <?php 
                    $sql 
"SELECT ID,Categoria FROM Categorias WHERE IDCuenta = '$idcuenta'";
                    
$rs mssql_query$sql );
                    
$resultados mssql_num_rows$rs );
                    if ( 
$resultados ){
                        
$i 0;
                        while ( 
$rows mssql_fetch_array$rs ) ){
                            echo 
"<tr>";
                            echo 
"<td><input type='checkbox' id='cat".$i."' name='categorias[]' value='".$rows['ID']."' />
                            "
.$rows['Categoria']."</td>";
                            echo 
"</tr>";
                            
$i++;
                            }
                        }
                    
?>
                </table>
Adicional a esto, estoy usando paneles en fichas spry de Dreamweaver y todo el código para ello es autogenerado, no se si eso sea lo que me ocasiona conflictos.

Cualquier ayuda u orientación es bien recibida.

Desde ya muchísimas gracias.

Etiquetas: php+basedatos, php+sqlserver
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 08:40.