Hallo allemaal,

Alvast bedankt voor jullie oplossing,

Ik heb in mijn code van alles wat veranderd, nu werkt ie helemaal niet meer. Het is beter dat ik alles gewoon weer over nieuw doe dus nu de vraag is hoe kan ik het beste doen of op welke manier?? zo dat ie in ieder browser werkt.


Online

Ik ben al 2 weken heel hard bezig met een zoek filter maar helaas nog lang niet af..!

Probleem : "Filteren werkt niet in IE7, Opera, Safari"

Ik zal even vertellen wat de bedoeling is.

Na dat het resultaat naar browser verstuurd is moet verder met Jquery kunnen filteren op de volgende dingen

Start datum
Eind datum
Land, Stad en Locatie

Ieder product krijgt zo 'n div

<div class="tickets_2800" data-json="{"productsId":"2800","date":"2013-10-13","countries":"5","cities":"99","location":"138"}">
   Product informatie
</div>

En hier is mijn script

[code]
<script type="text/javascript">

$(document).ready(function (){

$('#filter').click(function () {
//wanneer gebruikers op filter klikt
Filter();
});

function Filter(){

//Datum format veranderen naar yyyy-mm-dd
var startDate = $('.verfijnen .search .fromDate').val();
var startDate = startDate.split('/');
var startDate = startDate[2]+'-'+startDate[1]+'-'+startDate[0];

//Datum format veranderen naar yyyy-mm-dd
var endDate = $('.verfijnen .search .toDate').val();
var endDate = endDate.split('/');
var endDate = endDate[2]+'-'+endDate[1]+'-'+endDate[0];

//Geselecteerde waardes ophalen
var countries = $('.verfijnen .search #countries').val();
var cities = $('.verfijnen .search #cities').val();
var location = $('.verfijnen .search #location').val();


$('div.tickets').each(function() {

//convereten naar object
var objData = $.parseJSON($(this).attr('data-Json'));

//date.parse werkt niet in ieder browser
//Datum naar time()
var timeStartDate = date.parse(startDate);
var timeEndDate = date.parse(endDate);
var timeProductDate = date.parse(objData.date);

//alles beide datum velden niet leeg is
if(startDate.length > 0 && endDate.length > 0){

//valt product datum tussen beide datums die gebruiker heeft gekozen ?
if(timeProductDate.between(timeStartDate,timeEndDate)){
$('.tickets_'+objData.productsId).show();
}else{
$('.tickets_'+objData.productsId).hide();
}

}else{
//als alleen start datum gekozen
if(startDate.length > 0){
if( timeProductDate >= timeStartDate ){
$('.tickets_'+objData.productsId).show();
}else{
$('.tickets_'+objData.productsId).hide();
}
} else if(endDate.length > 0){
//als alleen eind datum gekozen
if( timeProductDate <= timeEndDate ){
$('.tickets_'+objData.productsId).show();
}else{
$('.tickets_'+objData.productsId).hide();
}
} else {
//anders! alles weer laten zien
$('.tickets_'+objData.productsId).show();
}
}
//is er een land geselecteerd en waarde is meer dan 0
if(countries > 0){
//is product land waarde niet zelfde als geselecteerde land waarde ? verberg het!
if(objData.countries != countries){
$('.tickets_'+objData.productsId).hide();
}
}
//is er een stad geselecteerd en waarde is meer dan 0
if(cities > 0){
//is product stad waarde niet zelfde als geselecteerde stad waarde ? verberg het!
if(objData.cities != cities){
$('.tickets_'+objData.productsId).hide();
}
}
//is er een locatie geselecteerd en waarde is meer dan 0
if(location > 0){
//is product locatie waarde niet zelfde als geselecteerde locatie waarde ? verberg het!
if(objData.location != location){
$('.tickets_'+objData.productsId).hide();
}
}

});
}//end function filter

//check Range number Dit komt van internet
Number.prototype.between = function(first,last){
return (first < last ? this >= first && this <= last : this >= last && this <= first);
}

});
</script>

[code]
Je code is nu heel slecht leesbaar en vrij lang. Misschien dat je even wat formatting kunt toepassen en voor een online voorbeeld kunt zorgen.
7 dingen die je moet toepassen voordat we je vraag kunnen beantwoorden:
1) Uitdagend? Waar slaat dat op? Heb je niet gewoon een vraag?
2) Maak liever een goede titel
3) toon alleen relevante code
4) gebruik [code] tags
5) Dat je operators niet werken en dat het in een bepaalde datum is weten we nu ondertussen wel. Leg liever uit waarom jij denkt dat die operators niet werken. Maw wat gebeurd er nu echt en wat verwacht je dat er moet gebeuren?
6) jQuery heeft geen operators, ik hoop dat je JavaScript bedoelt?
7) Verzorg graag een online voorbeeld. Stop je code bijv. in [google]JSfiddle[/google] of [google]jsbin[/google]
Hallo Jan & Wouter,

Bedankt voor jullie reactie, ik hoor dat het nu wat duidelijker is en anders hoor ik het graag.

Bedankt.

Reageren