Hi Team
I need some help and been stuck to this issue, the issue when inspecting by debugging on the server side i am getting 200 status. But on the client side i am getting failed to add to item. What exactly am i doing wrong?
// client side code
<div class="col-lg-3 col-6 text-right">
<a class="btn border">
<i class="fas fa-shopping-cart text-primary"></i>
<span class="badge">0</span>
</a>
</div>
<div class="card-footer d-flex justify-content-between bg-light border">
<a class="btn btn-sm text-dark p-0 view-details-btn" id="cart-0"><i class="fas fa-eye text-primary mr-1"></i>View Detail</a>
<a class="btn btn-sm text-dark p-0 add-to-cart-btn" id="cart-1">
<i class="fas fa-shopping-cart text-primary mr-1"></i>Add To Cart</a>
</div>
// jquery code
$(document).ready(function() {
$('.add-to-cart-btn').on('click', function(e) {
e.preventDefault();
var id = $(this).attr("id");
var product_item = $("#product-item").val();
var price = $("#price").val();
var product_img = $("#product_img").val();
var quantity = $("#quantity").val();
// Send an AJAX request to update the cart in the database
$.ajax({
url: 'update-cart.php',
method: 'POST',
data: { id: id, product_item:product_item, price:price, product_img:product_img, quantity:quantity},
success: function(response) {
// Handle the response from the server
if (response.success) {
// Update the cart badge count
var cartBadge = $('.fa-shopping-cart + .badge');
var cartCount = parseInt(cartBadge.text());
cartBadge.text(cartCount + 1);
} else {
// Handle the error scenario
alert('Failed to add item to the cart. Please try again.');
}
},
error: function() {
alert('An error occurred while processing your request. Please try again later.');
}
});
});
});
// server side
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
// Check if the AJAX parameter is present
if (isset($_SERVER['_X_REQUESTED_WITH']) && strtolower($_SERVER['_X_REQUESTED_WITH']) === 'xmlh...') {
// Proceed with the AJAX request
// Database connection details
$host = 'localhost';
$dbname = 'ecommerce_store';
$username = 'root';
$password = '';
// Retrieve the product information from the AJAX request
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['id']) && isset($_POST['quantity'])) {
$id = $_POST['id'];
$quantity = $_POST['quantity'];
// Print the received data for debugging
echo 'Received Data: ';
echo 'id: ' . $id . ', ';
echo 'quantity: ' . $quantity;
try {
// Connect to the database
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Update the cart item with the new quantity or perform other operations
// Example: Update the quantity in the cart table
$stmt = $conn->prepare("UPDATE cart SET quantity = :quantity WHERE id = :itemId");
$stmt->bindParam(':quantity', $quantity);
$stmt->bindParam(':itemId', $id);
$stmt->execute();
// Return a success response
$response = ['success' => true];
echo json_encode($response);
exit; // Stop executing further code
} catch (PDOException $e) {
// Return an error response
$response = ['success' => false, 'error' => $e->getMessage()];
echo json_encode($response);
exit; // Stop executing further code
}
} else {
echo json_encode(['success' => false, 'error' => 'Invalid request']);
}
} else {
echo json_encode(['success' => false, 'error' => 'Invalid request']);
}
?>