2011-06-08 41 views
0

我做了一个简单的购物车功能,但我现在有两个问题。 1是我的产品清单如此之大,我的购物车和我的产品清单位于同一页面。当访问者点击添加按钮时,需要很长时间来重新加载如何在不刷新产品页面的情况下使其工作,我的意思是将产品添加到购物车而不刷新产品页面?而我的第二个问题是我想要一个产品的库存更新功能,我怎样才能使购物车功能的产品更新功能形成? 这里是我的代码如何将产品添加到购物车中而无需刷新产品列表?

<?php 
session_start(); 

$page = 'producst.php'; 


// my add function 
if (isset($_GET['add'])) { 
    $quantity = mysql_query('SELECT id, quantity FROM products WHERE id='.mysql_real_escape_string((int)$_GET['add'])); 
    while ($quantity_row = mysql_fetch_assoc($quantity)) { 
     if ($quantity_row['quantity']!=$_SESSION['cart_'.(int)$_GET['add']]){ 
      $_SESSION['cart_'.(int)$_GET['add']]+='1'; 
     } 
    } 
    header('Location: '.$page); 
} 


// my product list function 
function products(){ 
    $result = ''; 
    $get = mysql_query('SELECT id, name, description, price FROM products WHERE quantity > 0 ORDER BY id DESC'); 
    if (mysql_num_rows($get)==0) { 
    }else{ 
     while ($get_row = mysql_fetch_assoc($get)) { 
      $result .= '<p>'.$get_row['name'].'<br />'.$get_row['description'].'<br />&pound;'.$get_row['price'].' <a href="cart.php?add='.$get_row['id'].'">add</a></p>'; 
      } 
    } 
    return $result; 
} 

// my cart function 
function cart() { 
    $result = ''; 
    foreach($_SESSION as $name => $value){ 
     if ($value>0) { 
      if (substr($name, 0, 5)=='cart_') { 
       $id = substr($name, 5, (strlen($name)-5)); 
       $get = mysql_query('SELECT id, name, price FROM products WHERE id='.mysql_real_escape_string((int)$id)); 
       while ($get_row = mysql_fetch_assoc($get)) { 
        $sub = $get_row['price']*$value; 
        $result .= $get_row['name'].' x '.$value.' @ &pound;'.$get_row['price'].' = &pound;'.$sub.'<br />'; 
       } 
      } 
     } 
    } 
    return $result; 
} 
?> 

回答

1

你不得不使用JavaScript和AJAX将请求发送到PHP脚本,而不重新加载页面。 PHP在您的服务器上运行,而JavaScript运行并与浏览器交互。

做一些关于AJAX的研究(如果你愿意看看jQuery框架)。

+0

你可以提供的JavaScript代码,ruquest php功能,无需重新加载因为我是新的和现在学习。我已经尝试下载jquery,但那是把我的头发,不为我工作。 – hamp 2011-06-08 06:31:14

相关问题