I have a database of musical theatre repertoire. I have added search and filter functions for the user. I also have text at the top of the page that displays the number of items in the database. I would like that number to change to reflect the number of search and filter results. I would appreciate any help with this!
Here is the database url: https://beverlyrosethompso.wixsite.com/rep-genie/rep-genie
This is the current code for the search results text:
wixData.query(“repgeniemusicaltheater”)
.count()
.then((num) => {
let resultsNum = num;
console.log(resultsNum);
$w(“#SearchCount”).text = resultsNum.toString();
});
Hello,
No need for another query, since you are filtering you can just count the items in the dataset after you are done filtering ( .then() ).
At around line 100 you have a .setFilter on your dataset, add a .then and get the total count, then just put this value as the text of the text box
It would look like this:
$w('#dataset1').setFilter(newFilter).then((num) => {
console.log($w('#dataset1').getTotalCount(), "heres count");
$w('#SearchCount').text = $w('#dataset1').getTotalCount().toString();
});;
Goodluck,
Majd
That worked perfectly, thank you!
Hi Majd Qumseya
May I get some help with this same issue. I have tried the code you provided above. But it doesn’t work for me. I have posted this questions but still no help. Once the user filtered their search I want to display on the page how many results in the category the user choose. User can filter by category, then by City & State.
I have created a text box to display the # of results called searchcount. and a Category button to display the current category the user has chosen, next the City& State button the user has chosen. and a clear all to clear the searches.
Below is my code that I am currently using for my filtered search:
import wixData from ‘wix-data’;
$w.onReady( function () {
$w(“#noResText”).hide();
});
export function searchbutton_click_1(event, $w) {
$w(“#dataset2”).setFilter(wixData.filter()
.contains("category", $w('#vendordropdown').value)
.and(wixData.filter()
.contains("cityState", $w('#cityandstatedropdown').value)
)
).then((results) => {
let count = $w(“#dataset2”).getTotalCount();
if (count === 0){
$w(“#noResText”).show();
}
if (count >= 1) {
$w(“#noResText”).hide();
}
console.log("Dataset2 is now filtered");
let numberOfResults = $w(“#dataset2”).getTotalCount();
console.log(numberOfResults );
}). catch ((err) => {
console.log(err);
});
$w(‘#Vendorlist’).expand();
}
this is what my page looks like …
I would appreciate any help that you offer. Thank you
Hello Eb,
Please create a separate ticket for this problem and one of the Wix Employees will get around to it
Best,
Majd