0

アイテムのIDと数量をJavascript関数に渡す[カートに追加]ボタンを使用しています。この関数は値を処理し、値をPOSTするための一時的なフォームを作成してから、URLに?PARAGRAPHを追加して製品ページを再読み込みします。

これは動作するコードです:

   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になりますが、PASSWORDによってcat =句が削除されるため、空白のページが読み込まれます。これを回避するために、カテゴリプレフィックス(FOO)をjavascriptに渡そうとしましたが、3番目のパラメータを追加すると壊れてしまいます。

これは私の新しいコードです:

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>';

3番目の変数を"FOO"、$ _ GET ["cat"]として渡そうとしましたが、どれも機能していません。どんなアドバイスも大歓迎です。

4

1 に答える 1

0

おそらく引用符がありません。

簡単な修正は

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

しかし、これはひどいです。個人的には、PHPからのインラインJavaScriptの構築を回避するために、コードをリファクタリングします。たとえば、次のように宣言された変数を使用してクリーンなJavaScriptスクリプトを生成します。

<script>
  var theid = '<?php echo $row["StockID"] ?>';
  ...
</script>
于 2013-02-08T17:01:46.297 に答える