Probleme de codage avec wixData update

Question:
Problème avec wixData.Update

Product:
Wix Editor

What are you trying to achieve:
J’ai un bouton dans un répéteur et quand je clique sur ce bouton je mets à jour un compteur qui appartient à MaCollection et j’utilise wixData.update pour faire la mise à jour des données de la collection liée au répéteur.

Aulieu de mettre à jour l’enregistrrement en cours (context) mon code supprime l’enregistrement ?!

What have you already tried:
Voici mon code :

export function button40_click(event) {
    const data = $w("#repeater3").data;
    const contextData = event.context;
    let answersitem = data.find(item => item._id === contextData.itemId);
    let Record_id = contextData.itemId;
    let MonUrl=answersitem.lienTlchargement;
    let Compteur=answersitem.cpt;
   
    Compteur++;    // Ici j'incrémente le compteur
     
    const itemToUpdate = {
            _id: Record_id,     // ID de l'élément à mettre à jour
            cpt: Compteur       // Champ à mettre à jour avec la valeur de Compteur
        };
 
        wixData.update('MaCollection', itemToUpdate)
          .then((result) => {
            console.log("Mise à jour réussie : ", result);
            //$w("#dataset1").refresh();   dataset1 est le dataset du répéteur
            // Je ne sais pas l'instruction ci-dessus est utile ?
          })
          .catch((error) => {
            console.error("Erreur lors de la mise à jour : ", error);
            // Gérer les erreurs éventuelles
          });
    
    // Ensuite j'ouvre le lien contenu dans MonUrl
    $w("#button40").target='_blanck';
    $w("#button40").link=MonUrl;
    wixLocation.to(MonUrl);     // Idealement dans un nouvel onglet mais ça ne marche pas !?
}

Additional information:
Je dois faire une erreur dans le codage de wixData.update mais je ne vois pas laquelle. Record_id contient bien l’Id de l’enregistrement de la collection, lié au conteneur en cours du repeater!?

Merci pour votre aide.

1 Like

Problème résolu :

export function button40_click(event) {
    const data = $w("#repeater3").data;
    let answersitem = data.find(item => item._id === event.context.itemId);
    answersitem.cpt++;
    let toUpdate = {
        "_id": answersitem._id,
        "image4": answersitem.image4,
        "image": answersitem.image,
        "description": answersitem.description,
        "lienTlchargement": answersitem.lienTlchargement,
        "soustitre": answersitem.soustitre,
        "cpt": answersitem.cpt,
        "dateDePulication": answersitem.dateDePulication,
        "title": answersitem.title,
        "titre": answersitem.titre
    }
    wixData.save("IMaCollection", toUpdate, options)
        .then((results) => { console.log("Mise à jour effectuée") })
        .catch((error) => { console.log("Erreur ds la mise à jour") });
    let monlien = answersitem.lienTlchargement;
    wixLocation.to(monlien);
}