I have some sort of custom form to order stuff.
When the user fills it in and presses a button the data is added to an array (shopping cart).
When the data is added to the array it also is added to the repeater
This happends when submitting to the shoppingcart array
if (winkelmand.length < 1) {
console.log("kleiner dan 1")
let toInsert = [{
"_id": "item1",
"positie" : $w("#txtPositie").value,
"aantal": $w("#txtAantal").value,
"profiel": $w("#ddDikteKader").value,
"doorkijkafgewerktematen" : $w("#ddDoorkijkAfgewerkteMaten").value,
"breedte" : $w("#txtBreedte").value,
"hoogte" : $w("#txtHoogte").value,
"kleurkader" : ralCode,
"poedercode" : poedercode,
"uitvoering" : uitvoering,
"typegaas" : $w("#ddTypeGaas").value,
"kleurpees" : $w("#ddKleurPees").value,
"klikborstel" : $w("#ddKlikBorstel").value,
"dikteklikborstel" : $w("#ddDikteBorstel").value,
"kleurklikborstel" : $w("#ddKleurBorstel").value,
"borstelboven" : borstelBoven,
"borstelrechts" : borstelRechts,
"borstelonder" : borstelOnder,
"borstellinks" : borstelLinks,
"typeclips" : $w("#ddTypeClips").value,
"soortbevestiging" : $w("#ddSoortBevestiging").value
}]
winkelmand = toInsert //if shoppingcart is empty winkelmand = toInsert
loadWinkemand() //load shoppingcart repeater data
$w("#repeater1").expand()
} else {
console.log("groter dan of gelijk aan 1")
let toInsert = {
"_id": "item" + (winkelmand.length + 1).toString(),
"positie" : $w("#txtPositie").value,
"aantal": $w("#txtAantal").value,
"profiel": $w("#ddDikteKader").value,
"doorkijkafgewerktematen" : $w("#ddDoorkijkAfgewerkteMaten").value,
"breedte" : $w("#txtBreedte").value,
"hoogte" : $w("#txtHoogte").value,
"kleurkader" : ralCode,
"poedercode" : poedercode,
"uitvoering" : uitvoering,
"typegaas" : $w("#ddTypeGaas").value,
"kleurpees" : $w("#ddKleurPees").value,
"klikborstel" : $w("#ddKlikBorstel").value,
"dikteklikborstel" : $w("#ddDikteBorstel").value,
"kleurklikborstel" : $w("#ddKleurBorstel").value,
"borstelboven" : borstelBoven,
"borstelrechts" : borstelRechts,
"borstelonder" : borstelOnder,
"borstellinks" : borstelLinks,
"typeclips" : $w("#ddTypeClips").value,
"soortbevestiging" : $w("#ddSoortBevestiging").value
}
winkelmand.push(toInsert) // if there already is value in winkemand add to winkemand(shoppingcart)
loadWinkemand() //load shoppingcart repeater data
}
Here is the loadWinkemand function (loading the shoppingcart)
function loadWinkelmand() {
console.log("before data added")
$w("#repeater1").data = winkelmand
console.log("after data added")
$w("#repeater1").forEachItem(($item, itemData, index) => {
const VIEWDETAIL = $item("#btnDetail")
VIEWDETAIL.onClick((event) => {
console.log(winkelmand)
$w("#txtPositieDetail").text = winkelmand[index].positie
$w("#txtAantalDetail").text = winkelmand[index].aantal
$w("#txtProfielDetail").text = winkelmand[index].profiel
$w("#txtDoorkijkAfgewerkteMatenDetail").text = winkelmand[index].doorkijkafgewerktematen
$w("#txtBreedteDetail").text = winkelmand[index].breedte
$w("#txtHoogteDetail").text = winkelmand[index].hoogte
$w("#txtKleurDetail").text = winkelmand[index].kleurkader
$w("#txtPoedercodeDetail").text = winkelmand[index].poedercode
$w("#txtUitvoeringDetail").text = winkelmand[index].uitvoering
$w("#txtKlikborstelDetail").text = winkelmand[index].klikborstel
$w("#txtDikteKlikborstelDetail").text = winkelmand[index].dikteklikborstel
$w("#txtKleurKlikborstelDetail").text = winkelmand[index].kleurklikborstel
$w("#txtTypeGaasDetail").text = winkelmand[index].typegaas
$w("#txtKleurPeesDetail").text = winkelmand[index].kleurpees
$w("#txtTypeClipsDetail").text = winkelmand[index].typeclips
$w("#txtSoortbevestigingdetail").text = winkelmand[index].soortbevestiging
$w("#txtBorstelBovenDetail").text = winkelmand[index].borstelboven
$w("#txtBorstelRechtsDetail").text = winkelmand[index].borstelrechts
$w("#txtBorstelOnderDetail").text = winkelmand[index].borstelonder
$w("#txtBorstelLinksDetail").text = winkelmand[index].borstellinks
$w("#boxDetail").expand()
})
const DELETE_ITEM = $item("#btnDelete")
DELETE_ITEM.onClick((event)=>{
console.log("index = ",index)
winkelmand.splice(index,1);
reloadWinkemand()
})
console.log("in forEach")
$item("#text200").text = "Positie : " + itemData.positie + " Profiel : " + itemData.profiel + "\n" + "Breedte : " + itemData.breedte + " Hoogte : " + itemData.hoogte + "\n Doorkijk/Afgewerkt : " + itemData.doorkijkafgewerktematen
})
}
Now the problem i have is taht when i delete an item
It doesn’t delete as it should…
When i add a few items to the repeater it deletes evrything form that index until the last one
When i click the red square
This is the result
Any idea how i can fix it so it only deletes the item that needs to be deleted?
Kinds regards,
Kristof.