Cita:
Iniciado por andinog Hola, hay algo que no entiendo, ¿estas usando jQuery?
Lo digo porque en una linea pones:
Código Javascript
:
Ver originalvar cell = document.getElementById('selected-color');
y en otra linea pones
Código Javascript
:
Ver original$("#colorcar").attr({
value: cell.className
})
En caso de que utilices jQuery, la forma de asignar un valor es
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//Country
$DataFilter='';
$CountryFilter='';
if (isset ($_POST['CountryCar'])) { $CountryInput = $_POST['CountryCar'];
} elseif (isset( $_SESSION['filter']['CountryCar'] )) { $CountryInput = $_SESSION['filter']['CountryCar'];
} else {// Nothing
}
if (isset($CountryInput)) {
if ($CountryInput !=''){
$_SESSION['filter']['CountryCar'] = $CountryInput;
if($DataFilter!="") {
$DataFilter .= " AND ";
}
foreach ($arrCountry as $CarCountry) {
if ($CarCountry["ClassCountry"] == substr($CountryInput,-1*strlen($CarCountry["ClassCountry"]))) { $CountryFilter = $CarCountry["CountryCodePK"];
}
}
$DataFilter .= "Previous_ownerCountry = '" . $CountryFilter ."' ";
}
} else {
$CountryInput = '';
}
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<label for="CountryInput"><?php echo $arrMainPage[$MainPageCountry]["TextHeader"]; ?></label>
<div name="CountryInput" id="CountriesFlags">
<?php
foreach ($arrCountry as $Country){
if ($Country["ClassCountry"] == substr($CountryInput, -1*strlen($Country["ClassCountry"]))) { ?> <img onclick="choose(this)" name="CountryInput" id="selected-country" class="HeightFlags" title="<?php echo $Country["CountryDescription"]; ?>" src="<?php echo $Country["ClassCountry"]; ?>">
<?php } else {
?> <img onclick="choose(this)" name="CountryInput" class="HeightFlags" title="<?php echo $Country["CountryDescription"]; ?>" src="<?php echo $Country["ClassCountry"]; ?>">
<?php }
}
?>
</div>
<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//Select a flag
var flag = document.getElementById('selected-country');
if(flag) {
choose(flag);
}
function choose(obj) {
obj.style.border = '3px solid #006DCC';
if (flag != null && flag != obj){
flag.style.border = '';
}
flag = obj;
$("#CountryCar").attr({
value: flag.src
})
}
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.