如何在不刷新产品列表的情况下将产品添加到购物车?

时间:2011-06-08 03:04:12

标签: php

我制作了一个简单的购物车功能,但我现在有2个问题。 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 个答案:

答案 0 :(得分:1)

您必须使用JavaScript和AJAX向PHP脚本发送请求,而无需重新加载页面。 PHP在您的服务器上运行,而JavaScript则在浏览器上运行并与之交互。

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