Hi, Wix Users.
I have a problem with my dropdown.
gu and dong are like City and State. So If I select gu, then dong is invoked corresponding their gu.
Dropdown can have only 1000 data, so I concatenated data using ‘concat’.
#dropdown2(gu) can have all gu of 8500 data, however, #dropdown3(dong) have only 1000 limited data of #dropdown2(gu) .
How can I make #dropdown3(dong) having all their value?
(Left)#dropdown2 (Right)#dropdown3
import wixData from “wix-data” ;
$w.onReady( function (){
fetchData();
});
async function fetchData() {
const onePage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.ascending( “gu” )
.find();
const twoPage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 1000 )
.ascending( “gu” )
.find();
const threePage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 2000 )
.ascending( “gu” )
.find();
const fourPage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 3000 )
.ascending( “gu” )
.find();
const fivePage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 4000 )
.ascending( “gu” )
.find();
const sixPage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 5000 )
.ascending( “gu” )
.find();
const sevenPage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 6000 )
.ascending( “gu” )
.find();
const eightPage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 7000 )
.ascending( “gu” )
.find();
const ninePage = await wixData.query( ‘wix25’ )
.limit( 1000 )
.skip( 8000 )
.ascending( “gu” )
.find();
const allItems = onePage.items.concat(twoPage.items).concat(threePage.items)
.concat(fourPage.items).concat(fivePage.items).concat(sixPage.items)
.concat(sevenPage.items).concat(eightPage.items).concat(ninePage.items);
//gu classification
const uniqueTitles=getUniqueTitles(allItems);
$w( “#dropdown2” ).options=buildOptions(uniqueTitles);
function getUniqueTitles(items){
const titlesOnly=items.map(item => item.gu);
return [… new Set(titlesOnly)];
}
function buildOptions(uniqueList){
return uniqueList.map(curr =>{
return {label:curr,value:curr};
});
}
}
//dong classification
function dropdown2_change(event,$w){
uniqueDropDown2();
$w( “#dropdown3” ).enable();
}
function uniqueDropDown2(){
wixData.query( “wix25” )
.contains( “gu” , $w( “#dropdown2” ).value)
.limit( 1000 )
.find()
.then(results => {
const uniqueTitles=getUniqueTitles(results.items);
$w( “#dropdown3” ).options=buildOptions(uniqueTitles);
});
function getUniqueTitles(items){
const titlesOnly=items.map(item => item.dong);
return [… new Set(titlesOnly)];
}
function buildOptions(uniqueList){
return uniqueList.map(curr =>{
return {label:curr, value:curr};
});
}
}