I don’t understand…
While my code works in “preview” mode, this is no longer the case when I view my site online!
The result of a calculation displays NaN while in “preview” mode the calculation is done correctly… where can the problem come from?
Thank you in advance for your help.
There are a number of things that can cause this - please post your relevant code.
Hi Colin, here is my code :
import wixData from 'wix-data';
wixData.query ("News")
. eq ("dispo", true )
. limit (1000)
. find ()
. then ((res) => {
let items = res.items ;
if (items.length > 0) {
let disabledDates = [ ] ;
items.forEach (e => {
disabledDates.push (e.date) ;
} )
$w ("#datePickerarrivee").disabledDates = disabledDates
$w ("#datePickerdepart").disabledDates = disabledDates
}
});
export function datePickerarrivee_change_1(event) {
let firstTime = new Date($w('#datePickerarrivee').value).getTime();
let timeTwoDaysHence = firstTime + (3 * 86400000);
let dateTwoDaysHence = new Date(timeTwoDaysHence);
$w('#datePickerdepart').minDate = dateTwoDaysHence;
}
export function datePickerarrivee_click_1(any) {
search();
}
function search() {
wixData.query("News")
.eq("date",($w("#datePickerarrivee").value))
.find()
.then(results => {
$w("#repeater1").data = results.items;
$w("#repeater3").data = results.items;
});
}
export function datePickerdepart_click(any) {
search2();
}
function search2() {
wixData.query("News")
.eq("date",($w("#datePickerdepart").value))
.find()
.then(results => {
$w("#repeater2").data = results.items;
$w("#repeater3").data = results.items;
});
}
$w.onReady(function () {
$w('#repeater1').onItemReady(() => {
$w("#repeater1").onItemReady(($item, itemData) => {
let samediarrivée = itemData.arrivee;
if (samediarrivée === true) {
$item("#datePickerdepart").enable();
}
else $item("#datePickerdepart").disable();
});
});
})
$w.onReady(function () {
$w('#repeater2').onItemReady(() => {
$w("#repeater2").onItemReady(($item, itemData) => {
let samedidepart = itemData.depart;
if (samedidepart === true) {
$item("#personnes").enable();
}
else $item("#personnes").disable();
});
});
})
$w.onReady(function () {
$w('#repeater3').onItemReady(() => {
$w("#repeater3").onItemReady(($item, itemData) => {
let samediarrivee = itemData.arrivee;
let samedidepart = itemData.depart;
if ((samediarrivee === true) && (samedidepart === true) ) {
$item("#rechercher").enable();
}
else $item("#rechercher").disable();
});
});
})
//ERROR HERE
let valeurData = 0
$w.onReady(function () {}) ;
export function rechercher_click(any) {
let sumnuits = 0 ;
let sumTotal = 0;
let sumTotal2 = 0;
wixData.query("News")
.lt("date",($w("#datePickerdepart").value))
.ge("date",($w("#datePickerarrivee").value))
.find()
.then(results => {
$w("#repeater4").data = results.items;
$w("#repeater4").forEachItem( ($item, itemData, index) => {
sumnuits = sumnuits+ Number($item("#nuits").text);
sumTotal = sumTotal + Number($item("#montant").text);
sumTotal2 = sumTotal + 0;
$w("#total").text = '' + sumTotal +" " + "€";
$w("#total2").text ='' + sumTotal2 +" "+ "€";
$w("#days").text ='' + sumnuits +" "+ "nuits";
$w('#statebox8').changeState("Page2");
});
});
}
Well, for starters, your $w . onReady ( function (){…} should be the first line of code before the query, as it ensures the page is loaded. You don’t need to repeat the line anywhere else. You also need to make your ‘news’ database ready inside the page onReady function. See Yisreal’s amusing post on the subject:
https://www.wix.com/velo/forum/tips-tutorials-examples/w-onready-a-guide-for-the-perplexed.
Hope this helps
Hello Collin,
Thank you for your advice.
My problem was that the database did not have time to load, so the calculation was not done and displayed NaN.
I was able to solve my problem with debounceTimer .
Thanks again for your help.