php - 根据表单中的行数将项目添加到购物车

标签 php javascript forms paypal shopping-cart

我正在寻找一种将表单中的行数链接到简单购物车/结帐脚本中的项目的方法。

这是场景。用户正在预订 session 席位。有一个三层定价结构,每个价格都有一个表格部分。当用户第一次导航到预订页面时,他被要求添加他/她希望在每个定价结构下预订 session 的人数。可以使用 javascript 将额外的行添加到表单的每个部分。完成每个被预订者的姓名/详细信息后,用户单击“提交”按钮,将所有信息提交到 MySQL 数据库,并将用户重定向到付款页面。

我希望这个支付页面包含一个简单的购物车/结账,它会自动填充每个费率的人数、每个费率的总数和总计。然后,用户只需点击一个按钮即可完成 PayPal 付款。

所以我坚持的部分是如何将信息从表单(即每个速率的行数(人))自动传递到“结帐”页面,以及我可能使用哪个脚本生成结帐页面。

如能提供任何帮助,我将不胜感激,

谢谢,

尼克

最佳答案

我会使用一个 POST 数组,这样当添加每一行时,它使用类似于以下格式的内容:

<input name='tickets[][name]' />
<input name='tickets[][email]' />

然后在PHP端,我们可以简单的统计票数,根据$_POST生成的数组进行定价

<?php

$tiers = array(
    array(
        'num_people' => 3,
        'price'      => 50.00,
    ),
    array(
        'num_people' => 10,
        'price'      => 20.00,
    ),
    array(
        'num_people' => 50,
        'price'      => 10.00,
    )
}

$price = $tiers[0]['price'];

$num_people = count($_POST['tickets']);

for($i=count($tiers); $i>=0; $i--){
    if ($num_people >= $tiers[$i]['num_people']) {
        $pricing = $tiers[$i]['pricing'];
        break;
    }
}

$total = $price * $num_people;

在 javascript 方面,您可以公开一个 Web 服务来计算费率并通过 ajax 或类似方式返回详细信息。

在最后一页上,您只需获取这些计算的结果(存储在 session 中或根据数据库中的顺序)并在您的 View 中打印出来。

关于php - 根据表单中的行数将项目添加到购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6011555/

相关文章:

php - 我如何将选择转换为复选框

forms - 如何在 Laravel 中处理日期输入

java - 在基于 Spring MVC 的 Web 应用程序中,如何判断用户是否提交了具有更改值的表单?

javascript - 使用 HTML5 技术操作和上传表单文件数据

javascript - 判断checkbox是否有变化

php - Laravel - LIKE 运算符来搜索加密值

PHP:php_sapi_name() 安全吗(用户可以操纵它)吗?

javascript - 选择所有选中的复选框返回所有复选框而不是使用 JQuery

javascript - 这是什么 Jquery 插件?

javascript - 仅在单击 Angular 后才使用过滤器进行搜索