Hmm… I’ve added showing image when dropdown2 change but the image order still is not right.
now when selecting apple it shows dog; select banana it shows apple, and choose back dog, nothing will happen.
Here is my code. (Maybe wrong with the “selectedIndex”? )
import wixData from 'wix-data';
var myDatabase = 'test'
$w.onReady(function () {console.log("CODE-START")
uniqueDropDown1();
$w('#dropdown1').onChange(()=>{
$w("#dropdown2").enable();
setTimeout(()=>{
let dd1Value = $w("#dropdown1").value
uniqueDropDown2(dd1Value);
},100)
})
});
//--------- Drop-Down-1 --------------------------
function uniqueDropDown1 (){console.log("Build unique DropDown-1")
wixData.query(myDatabase)
.limit(1000)
.find()
.then((res1)=>{
let items1 = res1.items
const uniqueTitles1 = getUniqueTitles1(items1);
let ddOptions1 = buildOptions1(uniqueTitles1);
console.log(uniqueTitles1)
console.log(ddOptions1)
$w("#dropdown1").options = ddOptions1;
});
}
function getUniqueTitles1(items) {
const titlesOnly = items.map(item => item.main);
return [...new Set(titlesOnly)];
}
function buildOptions1(uniqueList) {
return uniqueList.map(curr => {
return {label:curr, value:curr};
});
}
//--------- Drop-Down-2 --------------------------
function uniqueDropDown2(dd1Value){console.log("Build unique DropDown-2")
wixData.query(myDatabase)
.limit(1000)
.contains("main", dd1Value)
.find()
.then((res2)=>{
let items2 = res2.items
console.log(items2);
const uniqueTitles2 = getUniqueTitles2(items2);
let ddOptions2 = buildOptions2(uniqueTitles2);
console.log(uniqueTitles2)
console.log(ddOptions2)
$w("#dropdown2").options = ddOptions2;
});
}
function getUniqueTitles2(items2) {
const titlesOnly = items2.map(item => item.sub);
return [...new Set(titlesOnly)];
}
function buildOptions2(uniqueList) {
return uniqueList.map(curr => {
return {label:curr, value:curr};
});
}
var myResults
$w.onReady(function () {
wixData.query('test').find()
.then( (results) => {
if(results.items.length > 0) {
myResults = results.items
} else {
// handle case where no matching items found
}
} )
.catch( (err) => {
let errorMsg = err;
} );
$w('#dropdown2').onChange(()=>{
$w('#image5').src=myResults[$w('#dropdown2').selectedIndex].image
})
});


