jquery increment var name(认为vars被覆盖)

时间:2011-07-29 23:09:49

标签: php jquery arrays variables

我想我知道为什么我会遇到问题,但我对jquery的了解还不够。

我正在连接到数据库以获取产品列表,如果有多个具有相同的itemid,我会调用javascript函数。它是相同的功能,但我添加了一些位使其独特,所以我可以得到合适的价格等,但这一个javascript变量/数组总是相同的,我认为它覆盖了以前声明的变量。

指向我页面的链接是http://www.operationbraveheart.org.uk/jcart/testshop.php

我认为这与这条线有关,还是可能与很多变得越来越大的变量有关?

var price = item_prices_by_size[size].Price,

我有一个理论,如果我增加varname而不是 var form ,我会得到 var form1

这是我的jquery函数

<script type="text/javascript">
    var item_prices_by_size = <?php
    $blah=1;
    echo '{ ';
    foreach($subitem AS $subsubitem) {
        if($subsubitem['size'] != 'X-Large') {
            echo '"'.$subsubitem['size'].'": { "Price": "'.$subsubitem['price'].'", "ItemId": "'.$subsubitem['itemid'].'-'.$blah.'" },';
        }
        else {
            echo '"'.$subsubitem['size'].'": { "Price": "'.$subsubitem['price'].'", "ItemId": "'.$subsubitem['itemid'].'-'.$blah.'" }';
        }
        $blah++;
    }
    echo'};';
    ?>

    $(function() {

        $('#foo<?php echo $subitem[0]["prodid"] ?>').change(function() {

        var form = $(this).parents('form');

        // Size is whatever the value the user has selected
        var size = $(this).val();

        // Determine the correct price and item ID based on the selected size
        var price = item_prices_by_size[size].Price,
        itemId = item_prices_by_size[size].ItemId;

        form.find('#price<?php echo $subitem[0]['prodid'] ?>').text(price);

        form.find('[name=my-item-price]').val(price);

        // Update the item ID
        form.find('[name=my-item-id]').val(itemId);


        });
    });
</script>

1 个答案:

答案 0 :(得分:0)

我只需要使用php更改一些var名称,因为var值会被显示的下一个表单替换。

无法找到属于哪种形式的变种。

现在正在使用代码。

<script type="text/javascript">
                    var item_prices_by_size<?php echo $subitem[0]["prodid"] ?> = <?php
                        $blah=1;
                        echo '{ ';
                        foreach($subitem AS $subsubitem) {
                            if($subsubitem['size'] != 'X-Large') {
                                echo '"'.$subsubitem['size'].'": { "Price": "'.$subsubitem['price'].'", "ItemId": "'.$subsubitem['itemid'].'-'.$blah.'" },';
                            }
                            else {
                                echo '"'.$subsubitem['size'].'": { "Price": "'.$subsubitem['price'].'", "ItemId": "'.$subsubitem['itemid'].'-'.$blah.'" }';
                            }
                            $blah++;
                        }
                        echo'};';
                        ?>

        $(function() {


            $('#foo<?php echo $subitem[0]["prodid"] ?>').change(function() {

              var form = $(this).parents('form');

                // Size is whatever the value the user has selected
                var size = $(this).val();

                // Determine the correct price and item ID based on the selected size
                var price<?php echo $subitem[0]["prodid"] ?>  = item_prices_by_size<?php echo $subitem[0]["prodid"] ?>[size].Price,
                    itemId = item_prices_by_size<?php echo $subitem[0]["prodid"] ?>[size].ItemId;

                form.find('#price<?php echo $subitem[0]['prodid'] ?>').text(price<?php echo $subitem[0]["prodid"] ?>);

                form.find('[name=my-item-price]').val(price<?php echo $subitem[0]["prodid"] ?>);

              // Update the item ID
              form.find('[name=my-item-id]').val(itemId);


            });
        });
            </script>