jQuery увеличивает имя переменной (думаю, что переменные перезаписываются) - PullRequest
0 голосов
/ 30 июля 2011

Я думаю, я знаю, почему у меня проблема, но я недостаточно знаю о jquery, чтобы ее исправить.

Я подключаюсь к базе данных для получения списка продуктов, и если их несколькос тем же itemid я вызываю функцию javascript.Это та же функция, но я добавил несколько битов, чтобы сделать ее уникальной, чтобы я мог получить правильные цены и т. Д., Но эта переменная / массив javascript всегда одна и та же, и я думаю, что она перезаписывает ранее объявленную переменную.

Ссылка на мою страницу: http://www.operationbraveheart.org.uk/jcart/testshop.php

Я думаю, что это связано с этой строкой или это может быть связано с тем, что многие переменные перезаписываются?

var price = item_prices_by_size[size].Price,

У меня былТеория, что если я увеличу имя переменной так, вместо 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 голосов
/ 30 июля 2011

Мне просто нужно было изменить некоторые имена переменных, используя php, как и ожидалось, значения переменных заменялись следующей отображаемой формой.

Не было никакого способа определить, какая переменная принадлежит какой форме.

Рабочий код сейчас.

<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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...