Search data collection

If you want to filter date in a Data-Collection, then you have a choice of 3 different ways, how to do it.

  1. Without code → by using the given UI by wix.
  2. Code-version-1 —> using a DATASET and filter by dataset.
  3. Code-version-2 —> using DATABASE without any dataset.

The most flexible way is of course the last one, but also the most difficult one to program.

Here you will find a simple example, by using a DATASET.
https://russian-dima.wixsite.com/meinewebsite/blank-3

And here you will find one more upgraded and more challanging-FILTER-version…
https://www.media-junkie.com/pflegeservice

Read the belonging forum-posts, to understand all the coding.

This is an example by using a dataset-filter…

import wixData from 'wix-data'; 

export function A_change(event) {setMyFilter()} 
export function B_change(event) {setMyFilter()} 
export function C_change(event) {setMyFilter()} 
export function D_change(event) {setMyFilter()} 
export function E_change(event) {setMyFilter()} 
export function F_change(event) {setMyFilter()} 
export function G_change(event) {setMyFilter()} 

$w.onReady(function () { }); function setMyFilter (parameter) { 

let REFERENCE1 = "columntitle1" 
let REFERENCE2 = "columntitle2" let REFERENCE3 = "columntitle3" let REFERENCE4 = "columntitle4" let REFERENCE5 = "columntitle5" let REFERENCE6 = "columntitle6" let REFERENCE7 = "columntitle7" 

let ITEM1 = $w('#A').value 
let ITEM2 = $w('#B').value 
let ITEM3 = $w('#C').value 
let ITEM4 = $w('#D').value 
let ITEM5 = $w('#E').value 
let ITEM6 = $w('#F').value 
let ITEM7 = $w('#G').value let filter =  wixData.filter()  


if ($w('#A').value!==0) {filter = filter.eq(REFERENCE1, ITEM1);} if ($w('#B').value!==0) {filter = filter.eq(REFERENCE2, ITEM2);} if ($w('#C').value!==0) {filter = filter.eq(REFERENCE3, ITEM3);} if ($w('#D').value!==0) {filter = filter.eq(REFERENCE4, ITEM4);} if ($w('#E').value!==0) {filter = filter.eq(REFERENCE5, ITEM5);} if ($w('#F').value!==0) {filter = filter.eq(REFERENCE6, ITEM6);} if ($w('#G').value!==0) {filter = filter.eq(REFERENCE7, ITEM7);} 

    $w('#dataset2').setFilter(filter) } 

$w('#viewresults').onClick(async(event) => {
    await setMyFilter().then(() = {
        // Refresh the dataset
        $w('#dataset2').refresh();
    }).then(() = {
        // Repopulate the repeater's data
        $w('#repeater1').forEachItem( ($item, data) => {
            $item('#text89').text = data.columntitle8;
            $item('#text88').text = data.columntitle9;
        })
    })
})

Good luck, happy coding and a happy new year!:grinning: