Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/08/2013, 03:07
Novato2013
 
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 61
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Filtro=PHP+mysquli

Ya solucioné lo de los filtros, peor ahora tengo otro problema relacionado, pongo la solución a lo anterior y el problema nuevo. Lo de los filtros se soluciona d la siguiente manera, por ejemplo el filtro color:

Código PHP:
Ver original
  1. //Color
  2. if (isset ($_POST['ColorInput'])) {
  3.     $ColorInput = $_POST['ColorInput'];
  4.     if ($ColorInput !=''){
  5.         if($DataFilter!="") {
  6.             $DataFilter .= " AND ";
  7.         }
  8.         $DataFilter .= "Body_colorgroup_id = " . $ColorInput ." ";
  9.     }
  10. } else {
  11.     $ColorInput = '';
  12. }
Esta parte de código comprueba si el color existe y lo compara con la base de datos y esta otra lo recoge y muestra por pantalla:

Código PHP:
Ver original
  1. <label for="ColorInput"><?php echo $arrMainPage[$MainPageColor]["TextHeader"]; ?></label>
  2.                                     <select name="ColorInput">
  3.                                         <option></option>
  4.                                         <?php
  5.                                         $rcscolor = $cardata->query($qrycolor);
  6.        
  7.                                         while ($row = $rcscolor->fetch_array(MYSQLI_BOTH)) {
  8.                                            
  9.                                             if ($row["body_colorgroup_id"] == $ColorInput) {
  10.                                                 $ColorSelected = "selected";
  11.                                             } else {
  12.                                                 $ColorSelected = "";
  13.                                             }
  14.                                            
  15.                                             ?><Option  <?php echo $ColorSelected; ?> value="<?php echo $row["body_colorgroup_id"]; ?>"><?php echo $row["colorDescription"]; ?></option>
  16.                                         <?php
  17.                                         }
  18.                                        
  19.                                         echo "</select>"
  20.                                         ?>                     
  21.                                     </select>

Ahora para algunos filtros, para hacerlo más bonito, he intentado meterles formas, en vez de un simple select. Por ejemplo para el color he creado una tabla de colores, con la idea d q el usuario pinche en el color q desea, en teoría tiene el mismo comportamiento q un select pero se muestra ahora en una tabla:

Código PHP:
Ver original
  1. <label for="ColorInput"><?php echo $arrMainPage[$MainPageColor]["TextHeader"]; ?></label>
  2.                                 <table name="ColorInput" id="ColorsTable" border="1" >
  3.                                     <?php
  4.                                     $arrcolorDescription = array();
  5.                                    
  6.                                     $rcscolor = $cardata->query($qrycolor);
  7.                                    
  8.                                     while ($row = $rcscolor->fetch_array(MYSQLI_BOTH)) {
  9.                                             switch ($row["StructurePK"]) {
  10.                                                 case 'Color';
  11.                                                     $arrColor[] = $row;
  12.                                                     break;
  13.                                             }
  14.                                             if ($row["body_colorgroup_id"] == $ColorInput) {
  15.                                                 $ColorSelected = "selected";
  16.                                             } else {
  17.                                                 $ColorSelected = "";
  18.                                             }
  19.                                             ?>
  20.                                     <?php
  21.                                     }
  22.                                     ?>     
  23.                                         <tr>
  24.                                     <?php  
  25.                                             $intCount = 1;
  26.                                             $intHalf =  count($arrColor)/2;
  27.                                            
  28.                                             foreach ($arrColor as $Color => $valueArray){
  29.                                     ?>              <td name="ColorInput" <?php echo $ColorSelected; ?> value="<?php echo $row["body_colorgroup_id"]; ?>" class="<?php echo $valueArray["ClassColor"]; ?>" title="<?php echo $valueArray["colorDescription"]; ?>"></td>
  30.                                     <?php  
  31.                                                     if ($intCount >= $intHalf) {
  32.                                     ?>
  33.                                         </tr>
  34.                                         <tr>
  35.                                     <?php               $intHalf = $intHalf*2;
  36.                                                     }  
  37.  
  38.                                                     $intCount++;
  39.                                                 }
  40.                                             unset($valueArray);
  41.                                     ?>  </tr>
  42.                                 </table>
Pero no me recoge el valor cuando pincho en un color, la parte del isset y el POST no la he cambiado, no sé si tengo q modificar algo más, si alguien ve algo?
Muchas gracias!!