我正在創建一個應用程序,用戶可以更新他的產品圖像,如果他喜歡。
雖然我使用了一個模態,所以當單擊編輯按鈕時,它會帶來一個模態,顯示填充了產品詳細信息(名稱、價格、類別和圖像)的輸入塊。
當我點擊上傳圖像時,它將圖像上傳到數據庫并替換它。但它一直上傳圖片,直到我刷新瀏覽器。
這是代碼
let run = true;
function UpdateAndSet() {
if (run) {
onValue(EcomProducts, function (snapshot) {
SelectedProduct = snapshot.val();
//set the Values in the Input Tags to the Array Object Varibles
SelectedProduct[SL].Name =
document.getElementById("product-name2").value;
SelectedProduct[SL].discountPrice = document.getElementById(
"product_discount_price2"
).value;
SelectedProduct[SL].firstPrice = document.getElementById(
"product_first_price2"
).value;
SelectedProduct[SL].category =
document.getElementById("product_category2").value;
//SelectedProduct[SL].imageLink = SelectedProduct[SL].imageLink;
let productImage =
document.getElementById("product_image2").files[0];
console.log("done");
//If you upload an image- send to the databse and start uploading/ use the old image
if (document.getElementById("product_image2").files[0] == " ") {
SelectedProduct[SL].imageLink = SelectedProduct[SL].imageLink;
} else {
//upload image to storgae
let ProductPicsLocation = refStorage(
storage,
"ProductsPics/" + SelectedProduct[SL].Name + new Date().toJSON()
);
let ProductPicUpload = uploadBytesResumable(
ProductPicsLocation,
productImage
).then(() => {
console.log("Upload sucessful");
//get the link
getDownloadURL(ProductPicsLocation).then((url) => {
console.log(url);
SelectedProduct[SL].imageLink = url;
SetValueWithDatabse();
//location.reload();
run = false;
});
//Products[i].imageLInk = donloadlinkGenrated
});
//Now update it to the realtime databse
}
});
}
}
我嘗試使用 運行=真
然后我在文件上傳的時候把它弄成了假的..但是持續的上傳并沒有停止
添加到它..每當我點擊編輯按鈕時,更新按鈕就會出現。但是當我再次點擊另一個更新按鈕時,它會反復出現,直到我刷新頁面..
這是我的屏幕的照片 [項目圖片](https://I . stack . imgur . com/928 t1 . png)