2013-02-08 31 views
0

我正在研究一個Add To Cart按鈕,它將一個項目的ID和Quantity傳遞給一個Javascript函數。該函數處理這些值,創建一個臨時表單來POST值,然後用添加到URL的AddItem重新加載產品頁面。將參數傳遞給Javascript - 與2一起工作,打破3

這是工作代碼:

function submitItem(ID, Code) 
{ 
    alert("Submission received"); //--This is being triggered 
    var toCart, inputA, inputB, quantity; 

    quantity = Code.value; 

    // Create form 
    toCart = document.createElement('form'); 
    toCart.action = " &AddItem"; 
    toCart.method = 'post'; 

    //Rest of the code excutes as normal 
} 

我的產品頁面是動態加載的,所以對於一個類別的URL會blah.com/products.php?cat=FOO,但去除的AddItem貓=子句,所以加載一個空白頁面。爲了避免這種情況,我嘗試將類別前綴(FOO)傳遞給javascript,但添加了第三個參數就是打破它。

這是我的新代碼:

function submitItemCat(ID, Code, Category) 
{ 
    alert("Submission received"); //--This is not being triggered 
    var toCart, inputA, inputB, quantity; 

    quantity = Code.value; 

    // Create form 
    toCart = document.createElement('form'); 
    toCart.action = " &AddItem"+ Category; //--This is were I amend the URL 
    toCart.method = 'post'; 

    //Rest of the code 
} 

和HTML格式的函數調用

$jsCat = json_encode($_GET["cat"]); // This is FOO 

echo' 
<div id= "QuantBox"> 
    <label for="Quantity">'.$catPrefix.'</label> 
    <input type = "text" name= "Quantity" id= "Q'.$row["StockCode"].'" value="1"> 
    <a 
     class= "AddToCart" 
     onclick= "submitItemCat('.$row["StockID"].', Q'.$row["StockCode"].', '.$jsCat.')" > 
    </a> 
</div>'; 

我也試着通過第三變量 「FOO」,$ _GET [ 「貓」 ]但他們都沒有工作。 任何意見是非常感謝。

+0

難道你在控制檯中的任JS錯誤,以避免內嵌JavaScript的從PHP建設,例如? 'onclick'參數列表中的'Q'是什麼?這不需要引用? – marekful 2013-02-08 17:02:17

回答

0

您可能會缺少報價。

速戰速決將

onclick= "submitItemCat(\"'.$row["StockID"].'\", \"Q'.$row["StockCode"].'\", \"'.$jsCat.'\")" > 

但是這是可怕的。個人而言,我會重構代碼,以便通過產生具有可變乾淨的javascript腳本聲明

<script> 
    var theid = '<?php echo $row["StockID"] ?>'; 
    ... 
</script> 
+0

謝謝,我已經設法通過包括缺失的引號來工作。我試圖重構它,但我看不到任何方式來做它,這將允許我爲頁面上的每個項目生成一組獨特的變量。 – 2013-02-09 13:56:48