2016-12-09 4 views
0

私はPHPとWebプログラミング一般に比較的新しいです。 1つのページから選択した数量のアイテムを取り出し、選択した数量と数量をテーブルに別のPHPページに投稿しようとすると、問題が発生します。そこから、選択、選択された数量、価格、合計を表示する必要があります。誰かが正しい方向に私を導くのを助けることができるなら、私はそれを非常に感謝します!私は自分の問題を絞り込んだので、各選択の番号を選択して「送信」をクリックすると、処理されず、すべての選択内容がテーブルに追加されます。時間と労力のために事前にありがとう!PHP選択した数量からテーブルへ

ウェブサイト03 shop.php

<?php 
session_start(); 
include("website 03 library.php"); 
pagetop("WE WANT YOU TO SHOP"); 
echo "<span id = 'message' class = 'message'>Select How Many You Want of Each Product</span>"; 
$host_name = "localhost"; 
$user_name = "web"; 
$password = "programming"; 
$database = "assignments"; 
$connection = mysqli_connect($host_name, $user_name, $password, $database); 
$sql = "select * from products"; 
$recordSet = mysqli_query($connection, $sql); 
while ($record = mysqli_fetch_array ($recordSet, MYSQLI_ASSOC)) { 
    $pid = $record['pid']; 
    echo "<form action = 'website 03 cart.php' method = 'post'>"; 
    echo "<h2 name = 'NAME$pid'>$record['name']</h2><br><br>"; 
    echo "<img name = 'IMAGE$pid' style = 'height:280px; width:350px; ' src = '$record['url']'><br><br>"; 
    echo "<span name = 'PRICE$pid'>Price of each $record['name'] is $record['price']. How many do you want? </span>"; 
    echo "<select name = 'QUANTITY$pid'>"; 
     echo "<option value = 0>0</option>"; 
     echo "<option value = 1>1</option>"; 
     echo "<option value = 2>2</option>"; 
     echo "<option value = 3>3</option>"; 
     echo "<option value = 4>4</option>"; 
    echo "</select>"; 
    echo "<input type = 'submit' class = 'button' name = 'SUBMIT$pid' value = 'SUBMIT'>"; 
    echo "</form>"; 
}; 
mysqli_free_result($recordSet); 
mysqli_close($connection); 
?> 

2ページ目(選択された値を受け取る)

ウェブサイト私の意図は、03からポストされたデータを取ることである03 cart.php

<?php 
session_start(); 
include("website 03 library.php"); 
pagetop("SHOPPING CART"); 
$host_name = "localhost"; 
$user_name = "web"; 
$password = "programming"; 
$database = "assignments"; 
$connection = mysqli_connect($host_name, $user_name, $password, $database); 

echo "<table border = 1>"; 
$sql = "select * from products"; 
$recordSet = mysqli_query($connection, $sql); 
while ($record = mysqli_fetch_array($recordSet, MYSQLI_ASSOC)) { 
    $pid = $record['pid']; 
    $url = $record['url']; 
    $price = $record['price']; 
    $key = "QUANTITY$pid"; 
    $quantity = $_POST['$key']; 
    $total = $quantity * $price; 
    if ($quantity > 1) { 
     echo "<tr>"; 
     echo "<td><img style = 'height:110; width:150; ' src = $url></td>"; 
     echo "<td>$quantity</td>"; 
     echo "<td>$price</td>"; 
     echo "<td>$total</td>"; 
     echo "</tr>"; 
     echo "<tr>"; 
     echo "<td>TOTAL:</td>"; 
     echo "<td>$total</td>"; 
     echo "</tr>"; 
     echo "<tr>"; 
     echo "</tr>"; 
    }; 
}; 
echo "</table>"; 
?> 

それを03カートのテーブルに置きます。オンラインストアのようなもの。たとえば、2つの「時計」と3つの「自転車」を選択すると、そのデータは画像、数量、価格、合計(数量*価格)の順に03カートの表に掲載されます。私は自分の問題は、 "提出"ボタンがループ内にあるので、1つのセクションからのみ投稿すると考えています。しかし、私はウェブサイト03のカートに1つの投稿のすべての選択を参照するには、 "送信"ボタンを使用する方法を知りません。

+0

php_error_logにアクセスできますか?エラーがあなたを導くでしょう。 – WEBjuju

+0

@WEBjuju残念ながら私はしません。私は大学の教授が作成したウェブサイトでコーディングしています。課題を提出すると、ページをチェックするためのプロセスとステップが表示されます。これは、最初のページで複数の選択が行われても処理されなくなるということです。グレーディングプロセスでは「送信」ボタンがクリックされていると表示されますが、それ以降は何も表示されません。 –

+0

ねえ、私は参照してください。あなたは[xampp](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwitqfmt8OXQAhXHNiYKHfaYACwQjBAIIzAB&url=https%3A%2F%2Fwww.apachefriends)をダウンロードできます。 .org%2Fdownload.html&usg = AFQjCNEqFzBnZ4FDvJamdKo3NK9N7iWK0Q)実際のプログラミング環境を使用して、エラーが実際に何が間違っているのかを知ることができます。割り当てが正しいときは、コードを送信してsubmitを押すことができます。 – WEBjuju

答えて

0

ループの外<form>タグを持っているあなたの03 shopwhileループを変更、ループの外であなたの<form>タグを取得すること。

$record['name']のような複雑な$variablesは、中括弧なしの二重引用符で埋め込むことはできません。{$record['name']}

// print the form open 
echo "<form action = 'website 03 cart.php' method = 'post'>"; 
// do the loop 
while ($record = mysqli_fetch_array ($recordSet, MYSQLI_ASSOC)) { 
    $pid = $record['pid']; 

    // complex vars inside double quotes require special syntax 
    echo "<h2 name = 'NAME$pid'>{$record['name']}</h2><br><br>"; 

    echo "<img name = 'IMAGE$pid' style = 'height:280px; width:350px; ' src = '{$record['url']}'><br><br>"; 
    echo "<span name = 'PRICE$pid'>Price of each {$record['name']} is {$record['price']}. How many do you want? </span>"; 
    echo "<select name = 'QUANTITY$pid'>"; 
    echo "<option value = 0>0</option>"; 
    echo "<option value = 1>1</option>"; 
    echo "<option value = 2>2</option>"; 
    echo "<option value = 3>3</option>"; 
    echo "<option value = 4>4</option>"; 
    echo "</select>"; 
    echo "<input type = 'submit' class = 'button' name = 'SUBMIT' value = 'SUBMIT'>"; 
}; 
// now close the form 
echo "</form>"; 
+0

これは非常に有用だった!この点から私の問題は、私の教授が各製品の後に「送信」ボタンがあるように割り当てを格付けしているということです。上記のソリューションは、すべての製品がページに送信された後に「送信」ボタンを配置します。助言がありますか?私はそれについて考えてもそれが可能であるかどうかはわかりません。たぶん私の論理/機能を変更する必要がありますか? –

+0

あなたはすべての製品の後に提出することができますが、それは問題ではありません。私はそれを更新します。 – WEBjuju

+0

パーフェクト!皆さんのお手伝いをありがとうございます。 –

関連する問題