2014-11-11 3 views
0

저는 현재 웹 개발에서 PHP 장바구니 프로젝트를 진행하고 있습니다. 해결해야 할 문제는 product_list.php에서 선택한 제품의 값을 cart.php로 전달하는 것입니다. 클릭 한 제품에 상관없이 내 제품 테이블에있는 마지막 제품의 이름이 유지됩니다 cart.php 페이지에 나타납니다.PHP 장바구니에 값 전달

예를 들어, Bamboo Mat는 ID 번호가 없습니다. 2이지만 cart.php에 표시되는 제품 이름은 대나무 울타리 대신 ID 번호입니다. 8. 또한 수량 열에 나타나는 값은 선택한 제품의 남은 항목 수입니다.

제품가격이 인 열만 나타납니다.

<?php 

$err_level = error_reporting(0); 
$conn = mysql_connect('params'); 
error_reporting($err_level); 
?> 
<?php 

include "storescripts/connect_to_mysql.php"; 


?> 

<html> 
<head> 
    <title>Product List | Bamboo Art</title> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
</head> 
<body> 

    <div class="container"> 
     <div class="header"> 
      Bamboo Art 
     </div> 
     <div id="nav"> 
      <ul id="nav"> 

       <li><a href="index.php">Home</a> 
      </li><!-- 
      --><li><a href="#" class="current">Products</a> 
      </li><!-- 
      --><li><a href="#">Contact Us</a> 
      </li> 

      </ul> 
     </div> 



     <div class="content_product-list"> 


      <form method="POST" action="addtocart.php"> 
       <?php 

         $sql = "SELECT * FROM products"; 
         $query = mysql_query($sql); 

         while ($row = mysql_fetch_assoc($query)) { 


        ?> 
          <div class="products"> 

           <input type='hidden' name='id' value=' <?php echo $row['id'] ?> '> 
           <?php echo "<img src='". $row['image'] ."' width=290 height=220>" ?><br><br> 

           <h3><?php echo $row['name'] . '<input type="hidden" name="name" value="' . $row['name'] . '">' ?></h3> 

           <h4><?php echo $row['description'] . '<input type="hidden" name="description" value="' . $row['description'] . '">' ?></h4> 

           Price: Php <?php echo $row['price'] . '<input type="hidden" name="price" value="' . $row['price'] . '">' ?><br> 
           <?php echo " Availability: " . $row['qty'] . " <br/>" ?> 
           <?php echo " Quantity: <select name='qty' style='width:40px;'> 
                <option>1</option> 
                <option>2</option> 
                <option>3</option> 
                <option>4</option> 
                <option>5</option> 
                <option>6</option> 
                <option>7</option> 
                <option>8</option> 
                <option>9</option> 
                <option>10</option> 
               </select> "?> 
               <br><br> 
               <input type='submit' value='Add to Cart' name='submit'> <br/> 

          </div> 



        <?php 

         } 

        ?> 
       </form> 
      <br/> 



      </div>       
      </div>     
      </div>     
    </div> 
</body> 
</html> 

addtocart.php : 여기

는 product_list.php 파일의

<?php 

include "storescripts/connect_to_mysql.php"; 

    if (isset($_POST['submit'])) { 

    $qty=$_REQUEST['qty']; 
    $name=$_REQUEST['name']; 
    $price=$_REQUEST['price']; 
    $id=$_REQUEST['id']; 



    $rs=mysql_query("SELECT * FROM cart WHERE prod_id='$id'",$con) or die (mysql_error()); 
    if (mysql_num_rows($rs)>0) 
     { 
      mysql_query("UPDATE cart SET qty=(qty+'$qty') WHERE prod_id='$id'",$con) or die (mysql_error()); 
      mysql_query("UPDATE sales_record SET qty=(qty+'$qty') WHERE product_name='$name'",$con); 

     } 

    else 
     { 
      mysql_query("INSERT INTO cart (`cart_id`, `prod_id`, `qty`, `name`, `price`) VALUES (NULL, '$id', '$qty', '$name', '$price');",$con) or die(mysql_error()); 

      mysql_query("INSERT INTO sales_record (`sales_id`, `customer_id`, `product_name`, `qty`,`price`) VALUES (NULL, '', '$name', '$qty', '$price');",$con); 
     } 

     mysql_query("UPDATE products SET qty=(qty-'$qty') WHERE id='$id'",$con) or die(mysql_error()); 

    header("location:cart.php"); 
    exit; 
    } 

?> 

cart.php 파일 : 나는 모양에서 했어

<?php 
include "storescripts/connect_to_mysql.php"; 

if(isset($_POST['checkout'])){ 
header("location:orders.php"); 
} 
if(isset($_POST['shop'])){ 
header("location:product_list.php"); 
} 

?> 
<html> 
<head> 
    <title>Shopping Cart | Bamboo Art</title> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
    </head> 
<body> 
<div class="container"> 
    <div class="header"> 
      Bamboo Art 
    </div> 
    <div id="nav"> 
      <ul id="nav"> 

       <li><a href="index.php">Home</a> 
      </li><!-- 
      --><li><a href="product_list.php">Products</a> 
      </li><!-- 
      --><li><a href="contactus.html">Contact Us</a> 
      </li> 

      </ul> 
     </div> 
<div class="content"> 

    <div class="table_content"> 


         <h2>Your Cart</h2> 
        <form method="post"> 
        <table id="table" align="center" border="0" width="100%"> 
         <th>Qty</th> 
         <th>Product</th> 
         <th>Price</th> 
         <th>Total</th> 
         <tr> 
          <?php 
          //extract all items from the temporary cart 
          $q="SELECT * FROM cart, products WHERE cart.prod_id=products.id"; 

          $rs=mysql_query($q) or die (mysql_error()); 
          $total=0; 
          while($row=mysql_fetch_array($rs)){ 
           echo '<td>'. $row['qty'] .'<input type="hidden" name="qty" value="' . $row['qty'] . '"></td>'; 
           echo '<td>'. $row['name'] .'<input type="hidden" name="name" value="' . $row['name'] . '"></td>'; 
           echo '<td>'. number_format($row['price'],'2','.',',') .'<input type="hidden" name="price" value="' . number_format($row['price'],'2','.',',') . '"></td>'; 
           echo '<td><b>' . number_format(($row['qty']*$row['price']),'2','.',',') . '</b><input type="hidden" name="total" value="' . number_format(($row['qty']*$row['price']),'2','.',',') . '"></td>'; 
           $total+=($row['qty']*$row['price']); 
           echo '</tr>'; 
           echo '<tr>'; 
          } 
          ?> 

          <tr></tr> 
          <tr></tr> 
          <tr><td colspan="3"><strong>GRAND TOTAL</strong></td> 
          <td><?php echo number_format($total,'2','.',',');?><input type="hidden" name="gtotal" value="<?php echo number_format($total,'2','.',',');?>"></td> 

          </tr> 
          <tr height="40px"></tr> 
          <tr> 
           <td></td><td><input type="submit" name="checkout" value="Check Out" /></td> 
           <td><input type="submit" name="shop" value="Back to Shopping" /></td> 
          </tr> 
        </table> 

        </form> 
    </div>                

    </div> 

</div> 
</body> 
</html> 

몇 가지 장바구니 샘플 코드가 있는데이 솔루션이 있는지 알아보기 위해 노력하고 있지만 저에게 난처한 상황입니다.

this question 나는이 문제와 비슷한 소리가 나지만이 장바구니를 만드는 데 자바 스크립트를 사용할 수 없습니다. HTML, CSS 및 PHP 만 가능합니다.

현재 PHP 버전 4.2.7.1을 사용하고 있습니다.

답변

0

문제는 같은 이름의 입력 필드와 양식이 하나만있는 것입니다. 숨겨진 새 입력을 설정할 때마다 동일한 이름을 지정합니다. 기본적으로 제출할 $ _POST 데이터를 "덮어 씁니다". 당신은 같은 뭔가를 갈 수 :

input type="hidden" name="name[]" 

다음 addToCart와이 같은 한 것을 액세스 :

$_POST['name'][2] 

당신을 누르면 제출 버튼의 인덱스를 기반으로해야합니다.

다른 옵션은 모든 제품에 대한 양식을 작성하거나 $ _GET을 사용하여 수량과 함께 제품 ID를 전달하는 것입니다.