2012-04-29 10 views
1

これが正しいタイトルなのかどうかはわかりません。そうでない場合はごめんなさい。しかし、私がしようとしているのはこれです。製品名、価格、数量を格納する配列を持つ。 HTMLのドロップダウンボックスを使用して入力される複数の製品の場合。現在私はこれを持っています。HTML - オブジェクト配列?

var cart = new Object(); 

function main(uValue) 
{ 
    //Get the value from the drop down 
    var value = uValue.value; 
    //Add on to the page the new value 
    printOnPage(value); 
    //Add 
    cart = addItem(value); 
    printOnPage(cart); 

} 

function addItem(input) 
{ 
    //cart.push(input); 
    //return cart; 

    //look up id in assoc. array 
    //cart.numInCart++; 
    cart.Amount = input; 
    return cart; 
} 
function removeItem() 
{ 
    cart.splice(1,1); 
    return cart; 
} 

function printOnPage(input) 
{ 
    var para = document.createElement("p"); 
    var paymentDiv = document.getElementById("payment"); 
    paymentDiv.appendChild(para); 
    var txt = document.createTextNode(input); 
    para.appendChild(txt); 
} 

これはこれに関連するHTMLです。

<div class="item"> 
       <p>Faster than light car</p> 
       <img src="i/toycar.jpg" width="85%" height="85%" alt="ToyCar" title="#WickCar"> 
       <p>Cost: £10 per item</p> 

       <form name="form1" method="POST"> 
        <select name="values" onchange="main(this)" > 
         <option value="1">1</option> 
         <option value="2">2</option> 
         <option value="3">3</option> 
         <option value="4">4</option> 
         <option value="5">5</option> 
         <option value="6">6</option> 
         <option value="7">7</option> 
         <option value="8">8</option> 
         <option value="9">9</option> 
        </select> 
       </form> 
      </div> 

よくある質問です。 1)私はこれについて正しい方法をとっていますか? 2)なぜ配列の内容を見たいのですか?[オブジェクトオブジェクト] enter image description here

もっと良い方法がありますか?

ありがとう、誰かが私にこれを啓発することを願っています。

+1

オブジェクトは配列と同じではありません。カートを文字列または数字で索引付けしますか? –

+0

@MДΓΓLLLLLLオブジェクトの配列はありませんか?それとも私は完全にオフですか?私が気にしないことは、必要な詳細をもっと簡単に得ることができることです。だから、私は数字を推測する?ありがとう – Kyle93

+1

@ Kyle93はい、あなたはオブジェクトの配列を持つことができますが、それらはまだ数値インデックスを持っています。あなたがJSの中で何とかオブジェクトのように機能する連想配列を使用しない限り、「オブジェクト」と「連想配列」は同義語です。 – vol7ron

答えて

2

変更printOnPage(cart);あなたがオブジェクトではなく、カート内のキーの値のいずれかで出力cart、しようとしているように見えます

printOnPage(cart.Amount);へ。

+0

はい、ありがとうございます。それは、私が欲しかった価値を印刷することを並べ替えました!私はJSのメソッドに名前とコストを送信する方法について知っていますか?DOMを使用するのか、よりシンプルな方法ですか?もう一度ありがとうございます! – Kyle93

+0

これについては多くの方法がありますが、私はあなたが車輪を再発明していると感じています - すでにオンラインショッピングカートのテンプレートがたくさんありますが、これはフロントエンドだけであり、あなたの質問に答えるためには、最初に、あなたの 'cart'を3次元配列やオブジェクトの配列(' items')に変えてみるべきです。そのような変更を処理するためにprintOnPageを調整する必要があります。 – vol7ron

関連する問題