Hi,
I encounter a small problem trying to work my way out of building a HR company’s first jobboard.
I am new to code and managed to make the jobboard work but everytime i reset one dropdown, it resets everything instead of conserving other dropdowns’ input to filter my search accordingly …
Here is my code :
import wixData from ‘wix-data’;
$w.onReady(() => {
$w(‘#dataset1’).onReady(() => {
count();
$w(‘#langue , #secteur , #fonction , #region ,#regime , #type’).onChange(() => {
search();
})
$w(‘#vectorlangue’).onClick(() => {
$w(‘#langue’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
});
$w(‘#vectorsecteur’).onClick(() => {
$w(‘#secteur’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
$w(‘#vectorfonction’).onClick(() => {
$w(‘#fonction’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
});
$w(‘#vectorregime’).onClick(() => {
$w(‘#regime’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
});
$w(‘#vectorcontrat’).onClick(() => {
$w(‘#type’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
});
$w(‘#vectorregion’).onClick(() => {
$w(‘#region’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
});
$w(‘#clear’).onClick(() => {
$w(‘#langue , #secteur , #fonction , #regime , #type , #region’).value = “”;
$w(‘#dataset1’).setFilter(wixData.filter())
.then(count);
});
function search() {
let filter = wixData.filter();
let langue = $w(“#langue”).value
let secteur = $w(“#secteur”).value
let fonction = $w(“#fonction”).value
let region = $w(“#region”).value
let regime = $w(“#regime”).value
let type = $w(“#type”).value
if (langue && langue !== ‘all’) {
filter = filter.eq(“langue”, langue);
}
if (secteur && secteur !== ‘all’) {
filter = filter.eq(“secteur”, secteur);
}
if (fonction && fonction !== ‘all’) {
filter = filter.eq(“fonction”, fonction);
}
if (region && region !== ‘all’) {
filter = filter.eq(“region”, region);
}
if (regime && regime !== ‘all’) {
filter = filter.eq(“regimeDeTravail”, regime);
}
if (type && type !== ‘all’) {
filter = filter.eq(“typeDeContrat”, type);
}
$w(‘#dataset1’).setFilter(filter)
.then(count);
}
function count() {
let total = $w(‘#dataset1’).getTotalCount();
if (total > 0) {
$w(‘#text29’).text = ``;
} else {
$w(‘#text29’).text = “No result found!”;
}
}
});
});
let lastFilter1;
let lastFilter2;
function filter(keywords, essai) {
if (lastFilter1 !== keywords || lastFilter2 !== essai) {
let newFilter = wixData.filter();
if (keywords)
newFilter = newFilter.contains(‘keywords’, keywords);
if (essai)
newFilter = newFilter.contains(‘essai’, essai);
$w(“#dataset1”).setFilter(newFilter);
lastFilter1 = keywords;
lastFilter2 = essai;
}
}
export function iTitle_keyPress(event) {
filter($w(‘#iTitle’).value,lastFilter2);
}
export function iLieu_keyPress(event) {
filter(lastFilter1, $w(‘#iLieu’).value);
}
export function langue_click(event) {
$w(‘#vectorlangue’).show();
}
export function vectorlangue_click(event) {
$w(‘#vectorlangue’).hide();
}
export function secteur_click(event) {
$w(‘#vectorsecteur’).show();
}
export function vectorsecteur_click(event) {
$w(‘#vectorsecteur’).hide();
}
export function fonction_click(event) {
$w(‘#vectorfonction’).show();
}
export function vectorfonction_click(event) {
$w(‘#vectorfonction’).hide();
}
export function region_click(event) {
$w(‘#vectorregion’).show();
}
export function vectorregion_click(event) {
$w(‘#vectorregion’).hide();
}
export function regime_click(event) {
$w(‘#vectorregime’).show();
}
export function vectorregime_click(event) {
$w(‘#vectorregime’).hide();
}
export function type_click(event) {
$w(‘#vectorcontrat’).show();
}
export function vectorcontrat_click(event) {
$w(‘#vectorcontrat’).hide();
}
Here is thewebsite :
https://www.steve-job.be/jobs
Thanks in advance,
Baudouin