Я создаю очень простое приложение для магазина, используя PHP и немного JQuery.При первой загрузке приложение загружается нормально, но если GET запрашивает вызов того же скрипта, оно выдает мне ошибку:
Warning: require(app\controllers\Wallet.php): failed to open stream: No such file or directory in C:\xampp\htdocs\abc\app\core\autoload.php on line 5
Вот мой файл index.php
(ссылки Bootstrap и Jquery опущены):
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>MyShop</title>
</head>
<body>
<div id="app">
<?php
require_once 'app/core/App.php';
?>
</div>
</body>
</html>
Вот мой app/core/App.php
:
<?php
namespace app\controllers;
require_once 'autoload.php';
//Instantiate
$wallet = new Wallet();
$header = new Header();
$products = new Products();
$products_list = $products->getProducts();
$cart = new Cart($products_list);
//Do logic
$cart->addToCart(2);
if(isset($_GET['addtocart']))
{
$added_id = $_GET['addtocart'];
$cart->addToCart($added_id);
}
if(isset($_GET['removefromcart']))
{
$added_id = $_GET['removefromcart'];
$cart->removeFromCart($added_id);
}
if(isset($_GET['checkout']))
{
$cart->checkout();
}
//
//Show everything
$header->showHeader($wallet);
$products->showProducts();
$cart->showCart();
Автозагрузка в autoload.php
очень проста
<?php
spl_autoload_register(function($className)
{
require $className.'.php';
});
А вот пример сценария jquery, привязанного кAdd to cart
кнопка:
$(function() {
$('#app').on("click","#addtocart", function (e) {
e.preventDefault();
productId = $(e.target).data("product-id")
$.ajax({
type: 'get',
url: './app/core/App.php',
data: {
'addtocart': productId,
},
success: results => {
$('#app').html(results);
},
error: () => {
alert('Load error');
}
});
console.log(productId);
});
})
Похоже, ничего не меняется, но код ломается.