将参数传递给Javascript - 与2一起工作,打破3

问题描述:

我正在研究一个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

您可能会缺少报价。

速战速决将

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

但是这是可怕的。个人而言,我会重构代码,以便通过产生具有可变干净的javascript脚本声明

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

谢谢,我已经设法通过包括缺失的引号来工作。我试图重构它,但我看不到任何方式来做它,这将允许我为页面上的每个项目生成一组独特的变量。 – 2013-02-09 13:56:48