2009-10-02 33 views
0

我已經對Scriptaculous做了一些工作,現在我正在傾聽JQuery的看法,看看我最喜歡使用哪一個框架。我的一些行爲令我奇怪的運行...jQuery將字符串視爲變量?

 $.ajax({ 
     type: "POST", 
     url: "addcart.php", 
     data: "userID="+ userID + "&cardID=" + cardID + "&cardQTY=" + cardQTY + "&set=m10", 
     success: function(msg){alert("succeed " + msg)}, 
     error: function(msg){alert("fail " + msg)} 
    }); 

我儘量保持我的變量名稱儘可能相似過多的頁面,所以我試圖通過「變量名=變量值「到我的PHP。然而,這一呼籲一直通過「FOO = foo的&欄=酒吧歐洲工商管理學院的‘用戶ID = foo的& CardId中=酒吧’,這導致比較嚴重的混亂,直到我發現了事情的原委。

我想我的問題是,我有點觸發一些錯誤,或者這是JQuery的故意功能嗎?我可以看到它試圖做「$('#變量')」,如果它是故意的方便...

編輯添加:

在接收端一切似乎工作正常。只是變量名稱不是我所期望的,因爲它通過變量值=變量值而不是名稱=值

當我改變了代碼爲我預期它,我認爲是因爲名字都沒有在任何地方作爲變量的函數如下工作:

  $.ajax({ 
     type: "POST", 
     url: "addcart.php", 
     data: "UID="+ userID + "&CID=" + cardID + "&QTY=" + cardQTY + "&set=m10", 
     success: function(msg){alert("succeed " + msg)}, 
     error: function(msg){alert("fail " + msg)} 
    }); 

我寧願保持變量名稱相同,但是,所以我認爲下面的答案適用於我?

回答

1

這不是一個錯誤,它是一個功能! JQuery試圖通過讓參數數據作爲對象屬性傳遞,而不是在字符串操作和編碼方面進行調整,從而讓你的生活更輕鬆。

data: { 
    userID: userID, 
    cardID: cardID, 
    cardQTY: cardQTY, 
    set: 'm10' 
} 

它似乎支持傳遞自定義查詢字符串,但是,你確定它正在正確構造?