1

ショッピングカートを作成しようとしていますが、ユーザーがチェックしたチェックボックスをショッピングカートページに送信できました。それはデータベースからの詳細をエコーし​​ますが、私は自分の詳細を自分で投稿することができないことに気づきました。

大きなグループが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']、入力の「value」プロパティにどのようにデータを入力するかにあります。

個人的には、データベーステーブルにゲーム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 に答える