iT邦幫忙

0

購物車字串組合陣列問題

購物車的產品紀錄有特殊編碼,在 PHP 的架構下要形成如下列的格式
$cart[0]['2-1-3'] = 4;
$cart[1]['2-1-7'] = 3;
單純用 Session 跟 PHP 做沒有問題

// 這樣就可以形成上面的結構
$_SESSION['cart']["'".$_POST['item']."'"] = $_POST['qty'];

但我想用 JavaScript POST 一樣的格式去用 Ajax 撈取東西發生了問題
$cart.push({$num: $qty}); 這一段 POST 出去會變成 $cart[0][$item] = 6;
然後我用手打 $cart.push({'2-1-1': 6});
POST 出去會變成 $cart[0][2-1-1] = 6;
該怎樣做才會送出 $cart[0]['2-1-1'] = 6; 這樣的格式呢

<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script>
$(function() {
	var $cart = [];
	$('.cartTr').each(function() {
		var $num = $(this).find('[name="number"]').val(),
			$qty = $(this).find('[name="qty"]').val();
		$cart.push({$num: $qty});
	});
	
	console.log($cart);
});
</script>



<table>
    <tr class="cartTr">
        <td><input name="number" type="text" value="2-1-1" size="6" /></td>
        <td><input name="qty" type="text" value="3" size="6" /></td>
    </tr>
    <tr class="cartTr">
        <td><input name="number" type="text" value="2-1-3" size="6" /></td>
        <td><input name="qty" type="text" value="5" size="6" /></td>
    </tr>
</table>

1 個回答

2
fillano
iT邦超人 1 級 ‧ 2011-03-29 11:20:30
最佳解答
<pre class="c" name="code">$cart.push({"$num": $qty});

試試看。

fillano iT邦超人 1 級 ‧ 2011-03-29 11:41:32 檢舉

打太快Orz

$num是合法的property name...,所以不能這樣用變數來XD,改成這樣吧:

<pre class="c" name="code"><script>
$(function() {
	var $cart = [];
	$('.cartTr').each(function() {
		var c = {};
		c[$(this).find('[name="number"]').val()] = $(this).find('[name="qty"]').val();
		$cart.push(c);
	});
	
	console.log($cart);
});
</script>

我要發表回答

立即登入回答