Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/09/2013, 08:06
Novato2013
 
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 61
Antigüedad: 11 años, 6 meses
Puntos: 5
Respuesta: Pasando un valor con una función javascript para filtro

Cita:
Iniciado por andinog Ver Mensaje
Hola, hay algo que no entiendo, ¿estas usando jQuery?

Lo digo porque en una linea pones:

Código Javascript:
Ver original
  1. var cell = document.getElementById('selected-color');

y en otra linea pones

Código Javascript:
Ver original
  1. $("#colorcar").attr({
  2.                     value: cell.className
  3.                 })

En caso de que utilices jQuery, la forma de asignar un valor es

Código Javascript:
Ver original
  1. $('#colorcar').val(      valor     );

Saludos
Hola Andinog, gracias por responder.

En cuanto a tu pregunta: en esa parte no estoy usando jquery, lo que hago en la primera sentencia es detectar si ha presionado la celda y recoger el valor de la celda presionada y luego lo paso a mi filtro para que entre en la base de datos con ese valor. De todas formas la parte del color funciona perfectamente, la había puesto como ejemplo por si servía de algo.

Ya he conseguido que me funcione la parte de las banderas tb, ahora sólo necesito que cuando se clickee en una que ya está seleccionada se deseleccione.

Pego la solución d lo que preguntaba.

Esta es la parte del filtro de país:

Código PHP:
Ver original
  1. //Country
  2. $DataFilter='';
  3. $CountryFilter='';
  4.  
  5. if (isset ($_POST['CountryCar'])) {
  6.     $CountryInput = $_POST['CountryCar'];
  7. } elseif (isset( $_SESSION['filter']['CountryCar'] )) {
  8.     $CountryInput = $_SESSION['filter']['CountryCar'];
  9. } else {// Nothing
  10. }
  11.  
  12. if (isset($CountryInput)) {
  13.    
  14.     if ($CountryInput !=''){
  15.         $_SESSION['filter']['CountryCar'] = $CountryInput;
  16.         if($DataFilter!="") {
  17.             $DataFilter .= " AND ";
  18.         }
  19.        
  20.         foreach ($arrCountry as $CarCountry) {
  21.             if ($CarCountry["ClassCountry"] == substr($CountryInput,-1*strlen($CarCountry["ClassCountry"]))) {
  22.                 $CountryFilter = $CarCountry["CountryCodePK"];
  23.             }
  24.         }
  25.         $DataFilter .= "Previous_ownerCountry = '" . $CountryFilter ."' ";
  26.     }  
  27. } else {
  28.     $CountryInput = '';
  29. }

Esta es la parte donde muestro las banderas por pantalla, que he pegado en el anterior post pero ahora está cambiado el código:

Código PHP:
Ver original
  1. <label for="CountryInput"><?php echo $arrMainPage[$MainPageCountry]["TextHeader"]; ?></label>
  2.                                 <div name="CountryInput" id="CountriesFlags">
  3.                                 <?php
  4.                                     foreach ($arrCountry as $Country){
  5.                                         if ($Country["ClassCountry"] == substr($CountryInput, -1*strlen($Country["ClassCountry"]))) {
  6.                                 ?>          <img onclick="choose(this)" name="CountryInput" id="selected-country" class="HeightFlags" title="<?php echo $Country["CountryDescription"]; ?>" src="<?php echo $Country["ClassCountry"]; ?>">
  7.                                 <?php   } else {
  8.                                 ?>          <img onclick="choose(this)" name="CountryInput" class="HeightFlags" title="<?php echo $Country["CountryDescription"]; ?>" src="<?php echo $Country["ClassCountry"]; ?>">
  9.                                 <?php   }  
  10.                                     }
  11.                                 ?> 
  12.                                 </div>                     
  13.                                 <input type="hidden" id="CountryCar" name="CountryCar" value="" />

Y esta es la parte de javascript que me permite seleccionar la bandera:

Código Javascript:
Ver original
  1. //Select a flag
  2.             var flag = document.getElementById('selected-country');
  3.             if(flag) {
  4.                 choose(flag);
  5.             }
  6.            
  7.             function choose(obj) {
  8.                 obj.style.border = '3px solid #006DCC';
  9.                 if (flag != null && flag != obj){
  10.                     flag.style.border = '';
  11.                 }
  12.                 flag = obj;
  13.                 $("#CountryCar").attr({
  14.                     value: flag.src
  15.                 })
  16.             }

Si os fijais en el value al final he puesto flag.src que es lo lógico ya que es una imagen, lo único que no me funcionaba porque me cogí toda la dirección de la imagen pero lo he solucionado con substr.

Espero que sirva a alguien.

Si a alguien se le ocurre cómo sería para clickear otra vez sobre el color o la bandera seleccionada y que se borre los bordes así como el valor pasado a SESSION si no es la primera búsqueda, estaría bien saberlo.

Muchas gracias.