我刚建立购物车here 添加到购物车按钮可以完美地将产品添加到购物车,而无需刷新整个页面。
我的问题是,如何在点击添加到购物车链接后更新内容而不刷新页面
我有代码处理将产品添加到购物车并显示购物车内容。
<?php
if($what=="addtocart")
{
if ($cart)
{
$cart .= ','.$_GET['product_id'];
}
else
{
$cart = $_GET['product_id'];
}
$_SESSION['cart'] = $cart;
}
echo writeShoppingCart();
?>
这里是writeShoppingCart()函数
function writeShoppingCart() {
$cart = $_SESSION['cart'];
if (!$cart) {
return '<p>You have no items in your shopping cart</p>';
} else {
echo "<table class=table cellpadding=5 cellspacing=0 width=87% border=0>";
echo "<tr class=bold>";
echo "<td width=65>ID Product</td>";
echo "<td>Pattern</td>";
echo "<td>Inst Type</td>";
echo "</tr>";
include "config.php";
global $dbhost,$dbusername,$dbpassword;
$id_mysql = mysql_pconnect($dbhost,$dbusername,$dbpassword);
mysql_select_db($dbname, $id_mysql);
$cart = $_SESSION['cart'];
$items = explode(',',$cart);
$contents = array();
foreach ($items as $item) {
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
}
foreach ($contents as $id=>$qty) {
$view2 = "SELECT * FROM $table_product WHERE id='$id'";
$result2 = mysql_query($view2);
while
($baris=mysql_fetch_row($result2))
{
echo "<tr>";
echo "<td>$baris[1]</td>";
echo "<td>$baris[2]</td>";
echo "<td>$baris[3]</td>";
echo "</tr>";
}
}
echo "</table>";
echo "<span class=\"go_cart\">» <a href=\"cart.php\">View Complete Basket</a></span>";
}
}
将产品添加到购物车后是否有任何线索可以重新加载echo writeShoppingCart();
?
答案 0 :(得分:0)
您在打开session_start()
标记后忘记添加<?php
所以当你这样做时我认为你引用了一个空变量:$_SESSION['cart'] = $cart;
$ _SESSION ['cart']保持空白
要使用会话变量,你必须将session_start放在页面顶部;
<?php session_start();
//your stuff here
?>
我刚刚检查了你的页面,我注意到你在wordpress中工作,wordpress不支持使用会话变量,所以你必须在主题中寻找接收第一个控件的页面,通常是header.php在你的主题目录中:/yourroot/wp-content/themes/yourthemename/header.php
,你必须在该页面的顶部添加上面的代码。
另外:我提醒从“add-link”返回的resp
,它返回一个完整的网页,你调用的php脚本应该在wordpress之外,优选在你直接访问的文件中,这样当如果返回结果,则只有您正在回显的函数的输出
如果您仍有错误,请发表评论
//动态更改项目表的代码;
$(document).ready(function(){
$('a#add-link').bind("click", function(event) {
event.preventDefault();
var url = $(this).attr("href");
$.get(url, function (resp) {
jAlert('Product Has Been Added to Shopping Cart');
//to do the following you have to put your shoppingcart table in a div with the id="shoppingcart"
$("#shoppingcart").html(resp)
});
});
});
PS:因为我觉得你会忘记这件事,因为我正在为你做所有的代码
现在你的帖子页面:“http://ksul.kittenpile.com/product.php”返回一个完整的网页,你会注意到你在jAlert()函数上面添加了行alert(resp);
。 />
它不应该返回整个网页,因此不应该像打印其他页面一样打印到浏览器!只有writeShoppingCart()的结果应该被回显而且没有用!