1

我正在尝试制作购物车,并设法将用户选中的复选框提交到我的购物车页面。它与数据库中的详细信息相呼应,但我意识到我无法自行发布我的详细信息。

有一个大组,有没有办法添加到我的代码中以取消组合并将它们放在一个表中?

这是我用来将详细信息发布到我的购物车的代码:

<?php
if (isset($_POST['games'])) {
    $n = count($_POST['games']);
    for($i=0; $i < $n; $i++)
        echo $_POST['games'][$i];
    } 
?>

这是数据库:

  <?php
        $con = pg_connect(bla bla);
        if (!$con){
            die('Could not connect: ' . pg_error());
        }

        $result = pg_query("SELECT * FROM CSGames");
        echo "
        <table>
            <tr>
                <th>Title</th>
                <th>Platform</th>
                <th>Description</th>
                <th>Price</th>
                <th>Select</th>
            </tr>";

        while($row = pg_fetch_array($result)){
            echo"<tr>";
            echo "<td>" . $row['1'] . "</td>";
            echo "<td>" . $row['2'] . "</td>";
            echo "<td>" . $row['3'] . "</td>";
            echo "<td>" . $row['4'] . "</td>";
            echo '<td><input type="checkbox" name="games[]" value="' . $row['0'] . $row['1'] . $row['2'] . $row['3'] . $row['4'] . '"/></td>';

            echo"</tr>";      
        }
        echo"</table>";

        pg_close($con);

        ?> 
4

1 回答 1

0

您从中获取的数据的问题$_POST['games']在于您如何填充输入的“值”属性。

虽然我个人会在您的数据库表中添加一个游戏 ID,并且只将游戏 ID 的值作为输入值,然后在您的购物车输出页面上查找所选游戏的数据,但我会在您的情况下坚持使用该框架已经为我的回答做了一些事情。

这是你的问题:

<input type="checkbox" name="games[]" value="' . $row['0'] . $row['1'] . $row['2'] . $row['3'] . $row['4'] . '"/>

在这里,您只是将一堆字符串连接在一起,没有任何类型的分隔符,您可以稍后将其拆分。我只是建议做这样的事情:

<input type="checkbox" name="games[]" value="' . $row['0'] . '|||' . $row['1'] . '|||' . $row['2'] . '|||'. $row['3'] . '|||' . $row['4'] . '"/>

我添加了三重管道|||,您可以稍后使用它们来拆分这些字段。

因此,当您开始输出时,您可以执行以下操作:

<?php
if (isset($_POST['games'])) {
?>
<table>
<tr>
    <tr>
        <th>Title</th>
        <th>Platform</th>
        <th>Description</th>
        <th>Price</th>
    </tr>
<?php
    foreach($_POST['games'] as $game_string) {
        $game = explode('|||', $game_string);
?>
    <tr>
<?php
        foreach ($game as $attr) {
?>
         <td><?php echo $attr; ?></td>
<?php
        }
?>
    </tr>
<?php
    }
?>
</table>
<?php
} 
?>
于 2012-11-29T02:42:29.330 回答