Kezdőoldal » Számítástechnika » Weblapkészítés » Laravelbenvan egy js kódom,...

Laravelbenvan egy js kódom, ami fechel egy routeot, amit egy kontroller kezel, valamiért amellett, hogy megjeleníti azt a divet, amelyiket kell (error/message) előtte még egy üres lapon megjeleníti a json objektumot. Ez miért lehet?

Figyelt kérdés

JS kód:

document.querySelectorAll('.new_quantity').forEach(input => {

input.addEventListener('change', function () {

const itemId = this.getAttribute('data-id'); // Adat lekérése az input mezőről

const productQuantity = this.value; // Új mennyiség lekérése


fetch(`/cart/edit/${itemId}`, { // Kérés az edit URL-re

method: 'POST',

headers: {

'Content-Type': 'application/json',

'X-CSRF-TOKEN': csrfToken,

},

body: JSON.stringify({ id: itemId, quantity: productQuantity }),

redirect: 'manual'

})

.then(response => {

if (!response.ok) {

return response.json().then(data => {

throw new Error(data.error || 'Hiba történt');

});

}

return response.json();

})

.then(data => {

const messageContainer = document.getElementById('message_popup');

const errorContainer = document.getElementById('error_popup');

const messageText = document.getElementById('message_text');

const errorText = document.getElementById('error_text');


if (data.message) {

messageText.innerText = data.message; // Sikerüzenet beállítása

messageContainer.style.display = 'flex'; // Megjelenítés

errorContainer.style.display = 'none'; // Hibák elrejtése

} else if (data.error) {

errorText.innerText = data.error; // Hibaüzenet beállítása

errorContainer.style.display = 'flex'; // Megjelenítés

messageContainer.style.display = 'none'; // Sikerek elrejtése

}

})

.catch(error => {

const errorContainer = document.getElementById('error_popup');

const errorText = document.getElementById('error_text');


errorText.innerText = error.message || 'Ismeretlen hiba történt.'; // Hibakezelés

errorContainer.style.display = 'block'; // Hibaüzenet megjelenítése

});

});

});



controller:

public function updateQuantity(Request $request, $id) {

$quantity = $request->input('quantity');


if (Auth::check()) {

$cartItem = CartItem::where('user_id', Auth::user()->id)->where('id', $id)->first();

$product = $cartItem->product;

$productStock = $product->product_stock_quantity;


if ($quantity > $productStock) {

return response()->json(['error' => 'Nincs elég készlet a kívánt termékből!']);

}


$cartItem->quantity = $quantity;

$cartItem->save();


return response()->json(['message' => 'A kosár sikeresen frissítve lett!']);

}

else {

$cartItems = CartItemSessionModel::fromSession(session('cart', []));

$cartItem = $cartItems->firstWhere('id', $id);



$product = Product::find($cartItem->id);

$productStock = $product->product_stock_quantity;


if ($quantity > $productStock) {

return response()->json(['error' => 'Nincs elég készlet a kívánt termékből!']);

}


$cartItem->quantity = $quantity;

CartItemSessionModel::saveToSession($cartItems);


return response()->json(['message' => 'A kosár sikeresen frissítve lett!']);

}

}



dec. 22. 15:12
Sajnos még nem érkezett válasz a kérdésre.
Te lehetsz az első, aki segít a kérdezőnek!

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!