因为我只有几个产品,而且MySQL中的编码功能非常糟糕.
我想用希伯来语制作产品表并试图寻找找不到的答案.
所以知道我放弃了我只想用JUST PHP和AJAX制作购物车,这可能吗?
还是我必须使用MySQL?
我有一个ShoppingCart类,它包含CartItems(在ArrayList中).我想要的是每当会话存在时(当用户将项目添加到购物车时),它应该请求上一个会话并将其显示在ViewCart jsp页面上.
我现有的代码给了我很多麻烦,所以我想要一个清晰的概念来说明应该如何完成.作为ac #code,我认为我的逻辑在java中是错误的.这是我的c#代码
public class ShoppingCart
{
#region ListCart
public List<CartItem> Items { get; private set; }
#endregion
#region CartSession
public static readonly ShoppingCart Instance;
static ShoppingCart()
{
if (HttpContext.Current.Session["ASPNETShoppingCart"] == null)
{
Instance = new ShoppingCart();
Instance.Items = new List<CartItem>();
HttpContext.Current.Session["ASPNETShoppingCart"] = Instance;
}
else
{
Instance = (ShoppingCart)HttpContext.Current.Session["ASPNETShoppingCart"];
}
}}
Run Code Online (Sandbox Code Playgroud)
由于我不是java或jsp的专家,我很难搞清楚这一点.我该怎么办?
我正在尝试用条纹创建电荷.尝试创建订单对象时出现以下错误,但我设置了attr_accessor:stripe_card_token.有谁知道我做错了什么?
ActiveModel::MassAssignmentSecurity::Error in OrdersController#create
Can't mass-assign protected attributes: stripe_card_token
Run Code Online (Sandbox Code Playgroud)
OrdersController - 创建动作
def create
@order = current_cart.build_order(params[:order])
@order.ip_address = request.remote_ip
@order.user_id = current_user.id
respond_to do |format|
if @order.save_with_payment
@order.add_line_items_from_cart(current_cart)
Cart.destroy(session[:cart_id])
session[:cart_id] = nil
format.html { render :action => "success", :notice => 'Thank you for your order.' }
format.xml { render :xml => @order, :status => :created, :location => @order }
else
format.html { render :action => "new" }
format.xml { render :xml => @order.errors,
:status => :unprocessable_entity }
end
end …Run Code Online (Sandbox Code Playgroud) shopping-cart ruby-on-rails mass-assignment attr-accessor stripe-payments
我创建了一个我的第一堂课,一个购物车课.它很棒,并且完成了我所需要的一切.但是,总有一个......
我已经阅读了很多关于类型提示的内容,并被建议只通过我的shoppingcart类一个暗示变量:
$cart = new cart(item $id);
Run Code Online (Sandbox Code Playgroud)
我理解这样做的原因但是我很困惑我的项目类应该做什么以及如果我选择实现它,在其中使用什么方法.
目前我的网站使用MVC启发的结构来分离方法/视图和控制器.我的视图包含一个帖子表单,它将项目ID发送到控制器,控制器创建对象并调用additem方法(或其他相关方法).
您是否觉得我实施网站的方式受益于项目类?
我正在开发一个购物车和一个本地支付网关,它要求每笔交易都具有唯一的订单 ID。这个 id 应该根据订单详细信息保存在数据库中,并作为变量发送到支付网关。我的困境是如何生成唯一 id 以及如何在将我的变量发送到网关之前保存它,以便我可以在从网关的 IPN 收到响应时检查它是否匹配。有问题的变量如下所示:
$reference = $_POST['reference'];//unique order id of the transaction, generated by merchant
Run Code Online (Sandbox Code Playgroud) 我用会话在 mvc5 中编写了一个购物车,但我想用 cookie 替换实现。这是订单操作:
public ActionResult OrderNow(int id)
{
if(Session["cart"]==null)
{
List<Item> cart = new List<Item>();
cart.Add(new Item(de.Products.Find(id),1));
Session["cart"] = cart;
}
else
{
List<Item> cart = (List<Item>)Session["cart"];
int index = isExisting(id);
if (index == -1)
cart.Add(new Item(de.Products.Find(id), 1));
else
cart[index].Quantity++;
Session["cart"] = cart;
}
return View("Cart");
}
Run Code Online (Sandbox Code Playgroud)
和 Item 类是:
public class Item
{
private Product pr = new Product();
public Product Pr
{
get { return pr; }
set { pr = value; }
}
private int …Run Code Online (Sandbox Code Playgroud) 我有一个使用 Session 的购物车实现,并且想要迁移到基于 cookie 的购物车。此外,实际上我将完整的购物车存储在会话中,并希望迁移到只有 cartID 位于 cookie 中而内容位于数据库中的版本。
我读过很多博客文章,甚至还有关于 SO 的问题,但在某些领域仍然存在一些困惑:
例如,我正在使用 asp net mvc 和 c#。
我的代码有问题。我收到此错误消息“值不能为空。参数名称:源”
\n\n下面是错误行 100。
\n\nCartId 和 ShoppingCartId 是字符串。
\n\nRad 98: public List<Cart> GetCartItems()\nRad 99: {\nRad 100: return storeDB.Carts.Where(cart => cart.CartId == ShoppingCartId).ToList();\nRad 101: }\nRad 102:\nRun Code Online (Sandbox Code Playgroud)\n\n[ArgumentNullException: 值不能为 null。\nParameternamn: 源]\n System.Linq.Queryable.Where(IQueryable 1 source, Expression1 谓词) +2713614
public class Cart\n {\n [Key]\n public int RecordId { get; set; }\n public String CartId { get; set; }\n public int ProductId { get; set; }\n public int Count { get; set; }\n public System.DateTime DateCreated { get; set; }\n …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序可以将此脚本标签添加到商店中。
过去,我使用此脚本的脚本标签来监视客户的购物车活动。当脚本标签检测到 XHR 时,它会将一些数据发送到我的后端。
var oldXHR = window.XMLHttpRequest;
function newXHR() {
console.log('XHR detected!')
var realXHR = new oldXHR();
realXHR.addEventListener(
"load",
function () {
if (realXHR.readyState == 4 && realXHR.status == 200) {
if (realXHR._url === "/cart.js" || realXHR._url === "/cart/change.js") {
// do something....
}
}
},
false
);
return realXHR;
}
window.XMLHttpRequest = newXHR;
Run Code Online (Sandbox Code Playgroud)
但今天我不知道为什么更改购物车和将商品添加到购物车的操作无法再触发 XHR 侦听器。然而,这个脚本标签在我的旧商店中仍然有效。但如果我将其安装到新商店,它不会触发任何内容。我检查脚本标签是否在该新存储中正常运行,但问题是 XHR 侦听器未触发。
有人有一些想法吗?
有我的主控制器:
<?php
namespace App\Controller;
use App\Entity\ShopCart;
use App\Entity\ShopItem;
use App\Repository\ShopItemRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Config\Framework\SessionConfig;
use Symfony\Component\HttpFoundation\RequestStack;
class MainController extends AbstractController
{
private SessionInterface $session;
/**
* @param SessionInterface $session
*/
public function __construct(SessionInterface $session)
{
$this->session = $session;
$this->session->start();
}
public function debug($data)
{
echo '<pre>' . print_r($data) . '</pre>';
}
#[Route('shop/list', name: 'List')]
public function shopList(EntityManagerInterface $entityManager, ShopItemRepository $shopItemRepository): Response
{
$result = $shopItemRepository->findAll();
return $this->render('shop-list.html.twig', [
'shoes' => …Run Code Online (Sandbox Code Playgroud) shopping-cart ×10
php ×4
asp.net-mvc ×3
cookies ×2
mysql ×2
ajax ×1
c# ×1
generics ×1
java ×1
jsp ×1
servlets ×1
session ×1
shopify ×1
shopify-app ×1
symfony ×1
type-hinting ×1
web ×1