2

ここでショッピングカートを作成しました 。[カートに追加]ボタンは、ページ全体を更新することなく、商品をカートに完全に追加するために機能します。

私の質問は、ページを更新せずに[カートに追加]リンクをクリックした後、バスケットにコンテンツを更新させる方法です。

カートへの商品の追加を処理し、カートの内容を表示するためのコードがあります。

<?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\">&raquo;&nbsp;<a href=\"cart.php\">View Complete Basket</a></span>";
    }
}

echo writeShoppingCart();カートに商品を追加した後にリロードする手がかりはありますか?

4

1 に答える 1

0

session_start()タグを開いた後に追加するのを忘れた<?phpので、これを行うときに空の変数を参照していると思います。$_SESSION['cart'] = $cart; $ _ SESSION ['cart']は空のままで、セッション変数を使用します。常にsession_startをページの上部に配置する必要があります。 ;

<?php session_start();
   //your stuff here
?>

私は今あなたのページをチェックアウトしました、そしてあなたがワードプレス内で働いていることに気づきました、ワードプレスはセッション変数の使用をサポートしていません、それであなたは最初のコントロールを受け取るあなたのテーマでページを探す必要があります、それは通常header.phpですテーマディレクトリ内:/yourroot/wp-content/themes/yourthemename/header.php、そのページの右上にコードを追加する必要があります。

respまた、「add-link」から返されることを警告しました。Webページ全体が返されます。呼び出すphpスクリプトは、ワードプレスの外部、できれば直接アクセスするファイル内にある必要があります。これにより、結果が返されるときに、エコーしている関数の出力-ing

それでもエラーが発生する場合はコメントしてください

//アイテムテーブルを動的に変更するコード;

$(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」はウェブページ全体を返します。これはalert(resp);、jAlert()関数の上に行を追加するとわかります。
Webページ全体を返すことはできないため、他のページと同じようにブラウザに印刷しないでください。writeShoppingCart()の結果のみがエコーされ、他には何も表示されません。

于 2012-10-11T12:42:41.083 に答える