0

まず、Marcel Gwerder という人に感謝します。彼は私が質問しているコードを書きました。私はコメントを書くか、彼に PM を送信しますが、スレッドが死んでいると感じました (そして、人々は古いスレッドを見るだけではありませんか? 彼らもバンプすることはできません)。

このコードを見てください

// Shop Stuff
var cart = [];

$(document).ready(function(){  
    var buttonTxt = '';

    $(".buyinfo").click(function() {
        //Store text and id of the selected element
        var txt = $(this).siblings('.shopitemname').text(); 
        var id = $(this).closest('.shopitem').attr('id');

        if(!$(this).hasClass('added')) {
           buttonTxt =  $('.buyinfoname', this).text();
           $('#box_item').text(txt);
           cart[id] = txt;            
           //Change text
           $('.buyinfoname', this).text('Added to cart - Click to remove');
           $(this).addClass('added');
           //Show and hide overlay
           $('#confirmbox').show('normal').delay(2000).fadeOut();
        } else {
           delete(cart[id]);
           $(this).removeClass('added');
           $('.buyinfoname', this).text(buttonTxt);
        }

        console.log(cart);
        alert(cart);
    });
}); 

それはいくつかのJavascriptです。

ここで、コメンターが推奨した HTML について説明します。

<div id="shop">
<a href="checkout.php"><input type="button" value="Go To Checkout" id="checkoutbutton" /></a>

<div class="shopitem">

<p class="shopitemname">Orange Background Color</p>

<div class="buyinfo">

<p class="buyinfoname">Buy - 40 Coins</p>

</div>

</div>

<div class="shopitem">

<p class="shopitemname">Black Background Color</p>

<div class="buyinfo">

<p class="buyinfoname">Buy - 40 Coins</p>

</div>

</div>

<div class="shopitem">

<p class="shopitemname">Green Background Color</p>

<div class="buyinfo">

<p class="buyinfoname">Buy - 40 Coins</p>

</div>

</div>

<div class="shopitem">

<p class="shopitemname">Blue Background Color</p>

<div class="buyinfo">

<p class="buyinfoname">Buy - 40 Coins</p>

</div>

</div>

<div class="shopitem">

<p class="shopitemname">Yellow Background Color</p>

<div class="buyinfo">

<p class="buyinfoname">Buy - 40 Coins</p>

</div>

</div>

<div class="shopitem">

<p class="shopitemname">Purple Background Color</p>

<div class="buyinfo">

<p class="buyinfoname">Buy - 40 Coins</p>

</div>

</div>

</div>

</section>

<div id="confirmbox">

<p>The item was successfully added to your cart</p>

</div>

CART 変数の値を、誰かがクリックできる「checkout.php」という新しいページに送信する方法を考えていました。jquery からの AJAX または PHP からの投稿を考えていましたが、どちらも私にとっては難しく (私は初心者のコーダーです)、最終的にうまくいかない可能性のあるものに一生懸命取り組みたくありません。

また、Marcel への質問 (彼が見た場合) または彼のコードを理解している人への質問:

カートに値が入らないのはなぜですか。アラート(カート)を実行したところ、カートに値があるはずのときに常に空のアラートボックスが表示されます。

私を助けてください、そして良い一日を。

4

2 に答える 2

1

あなたはこれを行うことができ、私は動作するJSフィドルの例を作成しました. これはクライアント側のみであり、バックエンド処理スクリプトを作成する必要があります。これは、何をしようとしているのか (データベースに値を保存するなど) がわからないためです。

次の JS フィドルを見てください: http://jsfiddle.net/rDgUD/2/

jQuery で .post コマンドを使用できます。

$("#checkoutbutton").click(function () {
   $.post("test.php", cart, function (data) {
        //this is the reponse back from your PHP processing page that saved the variables in a database or however you were handling that.
        alert("Data Loaded: " + data);
    });
});

JS フィドルで、変数をカート配列に保存する方法を確認できます。jquery の .push 機能を使用して配列要素を追加します。

cart.push(id);

次のコードを使用して要素も削除しました。

var removeItem = id; // item to remove
cart.splice($.inArray(removeItem, cart), 1);
于 2013-04-01T22:21:42.143 に答える