创建购物车时遇到问题 [PHP 和 XML]

Posted

技术标签:

【中文标题】创建购物车时遇到问题 [PHP 和 XML]【英文标题】:Having trouble creating shopping cart [PHP and XML] 【发布时间】:2016-01-04 13:02:06 【问题描述】:

我正在开发一个包含四个网页和一个 xml 文件的网站。 menu.xml 文件包含可食用的菜单,看起来像这样

<menu>
    <item name="Pizzas">
        <category name="Onions" small="6.85" large="10.85">
        </category>
        <category name="Peppers" small="6.85" large="10.85">
        </category>
    </item>
    <item name="Salads">
        <category name="Garden" small="3.50" large="4.50">
        </category>
    </item>
</menu>

menu.xml 文件是可扩展的,我们可以添加新的items 或新的categories。 网站index.php 的主页以下拉列表的形式显示(假披萨)商店中的所有商品。

解析xml并在下拉菜单中显示项目的代码为:

<form action="display.php" method="post">
    <select name="foodType">
        <?php
            $dom = simplexml_load_file("menu.xml");
            foreach($dom->xpath("/menu/item") as $item)
            
        ?>
                <option value="<?php echo $item['name'] ?>" > 
                    <?php echo $item['name']; ?>
                </option>
        <?php
            
        ?>
    </select>
    <input type="submit" value="Let's Eat" />
</form>

到达 display.php 后,我已将 $_POST[‘foodType’] 的值存储在 $_SESSION[‘foodType’] 此页面使用以下代码显示项目的所有类别。

    <?php
        $selected = $_SESSION['foodType'];
            $dom = simplexml_load_file("menu.xml");
            $i = 0;
            foreach($dom -> xpath('item[@name="' . $selected . '"]/category') as $category)
            
                    echo '<li>';
                    echo '<h3>' . $category['name'] . '</h3>';
                    echo '</li>';
                    $_SESSION[$selected][$i] = "$category['name']";               
    ?>
                <form action="calculator.php" method="post">
                <table border="1" style="border-collapse:collapse">
                    <tr>
                        <th>Small</th>
                        <th>Large</th>
                    </tr>

                    <tr>
                        <td style="text-align:center;height:20px;"><input type="text" name="small[<?php echo $i ?>]" /></td>
                        <td style="text-align:center;height:20px"><input type="text" name="large[<?php echo $i ?>]" /></td>
                    </tr>
                </table>
     <?php
                $i =($i+1);
            ?>

到目前为止一切顺利。我遇到的问题是在calculator.php 中。 此页面应该:

显示当前购买的商品。 根据商品名称显示这些商品的价格。 继续checkout.phpindex.php取决于用户的提交 我不知道如何将数据存储在$_SESSION superglobal 中,以便在计算时,我能够唯一地识别比萨的 foodType、sald 或任何随后添加的类型。事实上,我完全不知所措,不知道如何处理这个页面。

如果问题看起来太长,我真的很抱歉。但这花了我一整天的时间,我仍然不知道该怎么做。因此,详细地问了这个问题,以便你们帮助我。 提前非常感谢。任何人的帮助将不胜感激。

【问题讨论】:

【参考方案1】:

关于 $_SESSION,您正在尝试检索一个尚不存在的值。 在 display.php 中执行以下操作

获取用户提交的数据到display.php$selected = $_POST["foodType"]; 将用户提交的数据存储到会话变量中,$_SESSION["foodType"] = $selected;

现在会话数据可以通过$_SESSION["foodType"]稍后检索

另外,在display.php的开头加上&lt;?php session_start(); ?&gt;,以防你看到$_SESSION undefined消息

【讨论】:

谢谢哥们。但是我展示的代码 sn-p 假定我在$_SESSION 中存储了适当的值,而$_SESSION 包含在第一页中选择的值。另外我一开始已经用过session_start了。 你能发布在 $_SESSION 中存储适当值的代码吗? 这是在会话中存储适当值的代码行session_start(); $_SESSION['foodType'] = $_POST['foodType']; 代码看起来不错....我猜你无法在calculator.php 中检索到这个$_SESSION['foodType'] ....你介意发布它吗。 不,我也可以在那里检索$_SESSION['foodType']。我无法解决的问题是,一旦用户选择了比萨饼,$_SESSION['foodType'] 将包含比萨饼,现在用户返回 index.php 并选择另一种食物类型,比如沙拉并点击输入,比萨饼的先前值存储在S_SESSION['foodType'] 会丢失并随沙拉一起更新,而为了维护我的购物车,我需要一些存储机制来稍后检索所有值。这意味着我应该始终存储所有“项目”值。该怎么做?

以上是关于创建购物车时遇到问题 [PHP 和 XML]的主要内容,如果未能解决你的问题,请参考以下文章

ajax编写购物车遇到的问题

禁止访问!尝试运行 php 文件时出现错误 403

使用 WooCommerce 时出错 - 在 $product 上使用 is_type 函数

如何使用 php 将 Mailchimp API 3.0 的“购物车”和“购物车行”添加到自定义商店?

创建表Android Studio时遇到问题

如何修复 PHP 嵌套循环我在尝试创建嵌套循环时遇到了一些问题?