עדכון מידע במספר פריטים באובייקט
-
מנסה לעדכן מלאי לאחר רכישה, קיבלתי את כל המוצרים שנרכשו, באובייקט, אני רוצה שיעבור בין כל הפריטים ויעדכן בכל אחד בשדה של המלאי -1 אני מבין שזה אמור לולאה for' אבל אני עוד לא הבנתי טוב את בניית הלולאות כנראה.
$w.onReady(function () { var id = $w("#dynamicDataset").getCurrentItem()._id; wixData.queryReferenced("hazmanot", id, "muzarim") .then((results) => { console.log(results); if (results.items.length > 0) { var firstItem = results.items var myObj, i; myObj = firstItem for (i in myObj.muzarim) { var id2 = myObj.muzarim // console.log(id2); wixData.get("muzarim", id2) .then((item) => { item.nimcar = Number(item.nimcar - 1) wixData.update("muzarim", item) .catch((err) => { let errorMsg = err; }) }); } } else { } }); });
-
זה הקוד בצורה מסודרת.
wixData.queryReferenced("hazmanot", id, "muzarim") .then((results) => { if (results.items.length > 0) { let firstItem = results.items; console.log(firstItem); mlay(firstItem) } else { } }) .catch((err) => { let errorMsg = err; }); export function mlay(firstItem) { var i; for (i in firstItem.nimcar) { var id = firstItem._id wixData.get("muzarim", id) .then((item) => { item.nimcar = Number(item.nimcar - 1) wixData.update("muzarim", item); }) .catch((err) => { let errorMsg = err; }); } }
הבעיה היא פה
for (i in firstItem.nimcar)אתה לא עובר על כל האלמנטים בצורה נכונה.
firstItem מערך ותחפש בגוגל.https://www.google.com/search?q=foreach+array+js
כלומר מעבר על כל המערך בשפת JS.
בהצלחה.
-
תודה @magicode אין מילים!
באתר החי, הוא לא מוריד לי בדיוק לפי הכמות, יתכן וזה רץ מהר מידי ומבצע כמה פעמים?` export function mlay(id) { wixData.queryReferenced("hazmanot", id, "muzarim") .then((results) => { results.items.forEach(item => { let id2 = item.muzarim, camut = item.camut; console.log(camut); wixData.get("muzarim", id2) .then((item1) => { item1.nimcar = item1.nimcar - camut wixData.update("muzarim", item1) .catch((err) => { let errorMsg = err; }) }) }) }); }