Hello,
The issue is simple, if two operations return the same result, the item in the list would be overwritten, for example:
a = fieldname1/fieldname2;
list[ROUND(a)] = 'Value A';
a = fieldname3/fieldname2;
list[ROUND(a)] = 'Value B';
if fieldname1 = 1, fieldame2 = 4 and fieldname3 = 1.1, ROUND(a) would be zero in both cases and finally list[0] would be the last value: ‘Value B’
The solution: Modifies the equation as follows:
(function(){
var result = '', list = [], tmp;
tmp = PREC((fieldname2*34)+(fieldname3*29)+(fieldname7*0)+(fieldname10*8),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/bobbejaanland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Bobbejaanland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*22.5)+(fieldname3*22.5)+(fieldname7*22.5)+(fieldname10*7),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/drievliet/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/2017/10/Drievliet-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*24.50)+(fieldname3*24.50)+(fieldname7*24.50)+(fieldname10*9),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/duinrell/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Duinrell-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*38)+(fieldname3*36)+(fieldname7*0)+(fieldname10*10),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/efteling/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Efteling-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*23.50)+(fieldname3*23.50)+(fieldname7*0)+(fieldname10*7),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/hellendoorn/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Hellendoorn-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*22.50)+(fieldname3*22.50)+(fieldname7*0)+(fieldname10*8.50),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/julianatoren/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Julianatoren-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></a></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*29)+(fieldname3*29)+(fieldname7*0)+(fieldname10*6),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/movie-park-germany/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Movie-Park-Germany-op-Pretpark-Vergelijker.nl_-1.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*47.50)+(fieldname3*37)+(fieldname7*0)+(fieldname10*5),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/phantasialand/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Phantasialand-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*20.30)+(fieldname3*20.30)+(fieldname7*0)+(fieldname10*7.50),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/slagharen/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Slagharen-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*32)+(fieldname3*22.50)+(fieldname7*0)+(fieldname10*8),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/toverland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Toverland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
tmp = PREC((fieldname2*33.50)+(fieldname3*31)+(fieldname7*0)+(fieldname10*8.50),2);
list.push('<tr><td><a href="https://pretparkvergelijker.nl/walibi-holland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Walibi-Holland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ '+tmp+'</td>');
result = '<table>'+list.join('')+'</table>';
jQuery('.result-container').html(result);
})()
and that’s all.
Best regards.
That’s awesome, the calculation works! What would make it really great is if the results could be automatic sorted by the lowest on #1… that would be so awesome! Is that doable?
Hello @madglaz,
Please, try using the following equation:
(function () {
var result = '',
list = {},
tmp,
result = '<table>';
tmp = PREC((fieldname2 * 34) + (fieldname3 * 29) + (fieldname7 * 0) + (fieldname10 * 8), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/bobbejaanland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Bobbejaanland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 22.5) + (fieldname3 * 22.5) + (fieldname7 * 22.5) + (fieldname10 * 7), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/drievliet/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/2017/10/Drievliet-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 24.50) + (fieldname3 * 24.50) + (fieldname7 * 24.50) + (fieldname10 * 9), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/duinrell/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Duinrell-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 38) + (fieldname3 * 36) + (fieldname7 * 0) + (fieldname10 * 10), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/efteling/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Efteling-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 23.50) + (fieldname3 * 23.50) + (fieldname7 * 0) + (fieldname10 * 7), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/hellendoorn/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Hellendoorn-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 22.50) + (fieldname3 * 22.50) + (fieldname7 * 0) + (fieldname10 * 8.50), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/julianatoren/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Julianatoren-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></a></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 29) + (fieldname3 * 29) + (fieldname7 * 0) + (fieldname10 * 6), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/movie-park-germany/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Movie-Park-Germany-op-Pretpark-Vergelijker.nl_-1.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 47.50) + (fieldname3 * 37) + (fieldname7 * 0) + (fieldname10 * 5), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/phantasialand/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Phantasialand-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 20.30) + (fieldname3 * 20.30) + (fieldname7 * 0) + (fieldname10 * 7.50), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/slagharen/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Slagharen-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 32) + (fieldname3 * 22.50) + (fieldname7 * 0) + (fieldname10 * 8), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/toverland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Toverland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
tmp = PREC((fieldname2 * 33.50) + (fieldname3 * 31) + (fieldname7 * 0) + (fieldname10 * 8.50), 2);
list[tmp.'_'.Math.random()] = '<tr><td><a href="https://pretparkvergelijker.nl/walibi-holland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Walibi-Holland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>';
var keys = Object.keys(list).sort();
for(var i in keys)
{
result += list[keys[i]];
}
result = '</table>';
jQuery('.result-container').html(result);
})()
Best regards.
Thank you so much for all your help. I have tried that! Unfortunately the entire results field is blank when I use that code 🙂
-
This reply was modified 4 years, 10 months ago by
MaDGLaZ.
Hello @madglaz,
I’m sorry, my mistake, please use the following piece of code as the equation associated to the calculated field:
(function () {
function compare(a,b)
{
if (a.value < b.value) return -1;
if (a.value > b.value) return 1;
return 0;
};
var result = '',
list = [],
tmp;
tmp = PREC((fieldname2 * 34) + (fieldname3 * 29) + (fieldname7 * 0) + (fieldname10 * 8), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/bobbejaanland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Bobbejaanland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 22.5) + (fieldname3 * 22.5) + (fieldname7 * 22.5) + (fieldname10 * 7), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/drievliet/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/2017/10/Drievliet-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 24.50) + (fieldname3 * 24.50) + (fieldname7 * 24.50) + (fieldname10 * 9), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/duinrell/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Duinrell-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 38) + (fieldname3 * 36) + (fieldname7 * 0) + (fieldname10 * 10), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/efteling/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Efteling-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 23.50) + (fieldname3 * 23.50) + (fieldname7 * 0) + (fieldname10 * 7), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/hellendoorn/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Hellendoorn-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 22.50) + (fieldname3 * 22.50) + (fieldname7 * 0) + (fieldname10 * 8.50), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/julianatoren/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Julianatoren-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></a></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 29) + (fieldname3 * 29) + (fieldname7 * 0) + (fieldname10 * 6), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/movie-park-germany/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Movie-Park-Germany-op-Pretpark-Vergelijker.nl_-1.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 47.50) + (fieldname3 * 37) + (fieldname7 * 0) + (fieldname10 * 5), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/phantasialand/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Phantasialand-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 20.30) + (fieldname3 * 20.30) + (fieldname7 * 0) + (fieldname10 * 7.50), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/slagharen/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Slagharen-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 32) + (fieldname3 * 22.50) + (fieldname7 * 0) + (fieldname10 * 8), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/toverland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Toverland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
tmp = PREC((fieldname2 * 33.50) + (fieldname3 * 31) + (fieldname7 * 0) + (fieldname10 * 8.50), 2);
list.push({'value': tmp, 'text':'<tr><td><a href="https://pretparkvergelijker.nl/walibi-holland/toegangskaartjes/" target="blank" rel="noopener noreferrer"><img src="https://pretparkvergelijker.nl/wp-content/uploads/Walibi-Holland-op-Pretpark-Vergelijker.nl_.png" width="100" /></a></td><td>€ ' + tmp + '</td>'});
list.sort(compare);
result = '<table>';
for(var i in list)
{
result += list['text'];
}
result += '</table>';
jQuery('.result-container').html(result);
})()
Best regards.
Thank you for your reply and for looking again at the code! Do know that I really really appreciate this 🙂
Unfortunately now it only displays this result:
undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined
Hello,
I’m sorry, please, replace this piece of code:
result += list['text'];
with this one:
result += list[i]['text'];
Best regards.
Haha thank you very much! We are very very close. Now the results are filtered with the lowest price on top so that is excellent BUT it also ranks with digits. Let me explain,
The top 5 prices are all €100+ untill the highest and than suddenly comes the prices € 80 till €100 🙂 Oh we are so so close 🙂 🙂 Thank you so much for helping out this long!!
Hello,
Please, replace the piece of code:
if (a.value < b.value) return -1;
if (a.value > b.value) return 1;
by this one:
if (a.value*1 < b.value*1) return -1;
if (a.value*1 > b.value*1) return 1;
Best regards.
PLease delete this topic – it shows up in the search engines…
Hello @madglaz,
I’m sorry, but I don’t think I can delete a complete thread from the WordPress forum, I guess you should contact to the WordPress staff.
Best regards.
Hi,
I see no reason to remove this topic, as per our Forum Guidelines, nothing here gives cause for removal.
Forum Guidelines