2012-12-11 55 views
0

我試圖構建一個購物車應用程序。購物車中的所有商品都位於名爲購物車的JavaScript對象中。購物車中的數據格式爲{「sku」= quantity}例如。將JSON對象的「key」「values」傳遞給perl腳本

 Cart={"5x123"=1,"5x125"=3} 

現在我有一個表單,它接受運費和帳單地址。

<form method="post" action="/perl/xxxx/echo.cgi"> 
    <table> 
    <tr> 
     <td>Name:</td> 
     <td><input type="text" name="name" size="30" /></td> 
    </tr> 

    <tr> 
     <td>Shipping Address:</td> 
     <td><Input type="text" name="address" id="saddress" size="40" /></td> 
    </tr> 
    .... 
    <tr> 
     <td><input type="reset" /></td> 
     <td><input type="submit" value="Submit Order"/></td> 
    </tr> 
    </table> 
    </form> 

當我提交這個表單時,我需要使用Perl將Javascript Object Cart中的「sku」和「quantity」存儲到數據庫中。

請問有人能告訴我最簡單的方法嗎?

我應該在窗體中使用ajax還是隱藏值?

如果我使用ajax,那麼如何從perlscript中的Cart中檢索值?

如果我使用隱藏值這樣

<input type=hidden name=sku value=""> 
    //How to populate value field 
    //I need to have as many hidden fields as the number of items in cart 

感謝,

回答

0

我懷疑AJAX是要走的路。要在Perl中讀取購物車json對象,請使用JSON模塊,具體爲decode_json。它會將您的數據轉換爲perl友好的散列,然後您可以根據需要參考。

1

在瀏覽器中使用AJAX將您的JavaScript對象提交給服務器。 Jquery JavaScript庫非常適合您在這裏的幫助。

然後,使用您的cgi中的CGI perl模塊檢索發佈的值,並使用JSON模塊(如前所述)將JSON對象轉換爲perl散列。

+0

謝謝,我相當新的AJAX和JQuery。這是我創建的AJAX調用。 $( ':提交')對( '點擊',功能(E){ \t \t如果(validate_fields_on_submit()){ \t \t e.preventDefault(); \t \t回報; \t} \t \t! $阿賈克斯({ \t \t \t數據類型: '文字',//你正在返回的數據類型 \t \t \t網址: '/perl/xxxx/store.cgi', \t \t \t數據:車, \t \t成功:function(msg){//數據是從ajax調用返回的數據 handle.innerHTML = msg; \t } });這是正確的嗎? – Sush

+0

當它在這樣的評論中時很難檢查語法,但部分似乎都在那裏。 –