将变量从一个表传递到另一个 PHP 页面中的另一个 [重复]

Posted

技术标签:

【中文标题】将变量从一个表传递到另一个 PHP 页面中的另一个 [重复]【英文标题】:Pass variables from one table to another in another PHP page [duplicate] 【发布时间】:2017-04-11 22:44:53 【问题描述】:

我正在学校做一项作业,我们应该模拟一个网络零售商店,该商店通过 php 将产品从数据库发送到最终用户。然后,用户应该能够通过复选框将产品添加到购物车,然后按一个按钮将它们带到购物车,其中只有产品表中的选定项目应该显示。

我已经取得了一些很大的进步,但我被困在这个很小的问题上,即:我无法弄清楚如何在表格中呈现所选项目。让我向您展示我的产品表现在的样子:

还有代码:

<form action="selected_products.php" method="POST">
<table>
    <tr>
        <th>Select</th>
        <th>Product-ID</th>
        <th>Product Name</th>
        <th>Price SEK</th>
    <tr>

<?php
// Print out all entries in a table
foreach ($rows as $value) 
    extract($value);

    echo "<tr><td><input type='checkbox' name='SelectedData[]' alt='Checkbox' value='$id&$name&$price'></td>";
    echo "</td><td>".$id.'';
    echo "</td><td>".$name.'';
    echo "</td><td>".$price.'';
    echo "</td></tr>";

?>
</table>
<br>
<input type="submit" value="Add to cart" />
</form>

当用户选择带有复选框的产品并按下按钮时,它会将它们带到selected_products.php 页面,如下所示:

还有代码:

<table>
    <tr>
        <th>Product-ID</th>
        <th>Product Name</th>
        <th>Price SEK</th>
    <tr>
<?php
if(!empty($_POST['SelectedData'])) 
    foreach($_POST['SelectedData'] as $selected) 
            echo "<tr><td>".$selected.'';
            echo "</td></tr>";
    

?>

所以,我的问题是:如何让选定的产品填满整个表格,而不是像现在这样被塞进一列?我确实使用value='$id&amp;$name&amp;$price' 传递它,但是如何使这个值字符串将每个条目放在selected_products.php 页面上的相应列中?

【问题讨论】:

你需要通过explode函数拆分字符串,但是如果你的产品名称是L&amp;T或者H&amp;P呢? value='$id|$name|$price' 不要使用“&”,就像@mplungjan说的那样,使用管道“|”用于内爆一组值。 我建议使用自定义分隔符,而不是像 &amp;| 等单个字符,例如 ~!~ 【参考方案1】:

正如 cmets 中已经回答的那样,您可以使用 explode() 来解决这个问题。

foreach($_POST['SelectedData'] as $selected) 
    list($id, $name, $price) = explode("&", $selected);
    echo "<tr><td>".$id.'';
    echo "</td><td>".$name.'';
    echo "</td><td>".$price.'';
    echo "</td></tr>";

但这是一个相当糟糕的主意,因为它允许每个人随心所欲地填充它。这是因为每个人都可以发送包含他们想要的任何内容的发布请求。更好的方法是将 selected 设置为项目的 id,然后使用项目的 id 再次从数据库中读取您需要的数据。这样只能显示数据库中的项目。

【讨论】:

谢谢大家!我以前读过有关 explode 的文章,但我不确定如何使用它,或者它是否适用于我的项目。再次感谢大家!【参考方案2】:

在 & 处分割你的字符串。

explode("&",$selected);

这将创建一个单独保存值的数组。

[0] => 3
[1] => Samsung 960 Pro
[2] => 3150

你的项目看起来不错;)

更新: 就像@mplungjan 说的:使用管道分隔值。那就去吧

explode("|", $selected);

【讨论】:

除非他有一台 AT&amp;T 电脑 - 请注意我 10 分钟前评论过这个 没错。他应该关心这个——但这就是他所要求的答案。 所以将其标记为我给出的评论中链接的副本

以上是关于将变量从一个表传递到另一个 PHP 页面中的另一个 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 header() 将数据从一个 PHP 页面传递到另一个页面

如何使用会话将值从一个php页面传递到另一个页面

如何将 php 变量传递给同一页面中的另一个表单?

使用 PHP 获取从一个页面传递到另一个页面的变量

如何将值从一个php页面传递到另一个? [复制]

如何将变量从一个剃须刀页面传递到另一个?