2011-07-29 52 views
0

我想我知道爲什麼我會得到我的問題,但我不知道jquery足夠解決它。jquery increment var name(think vars正在被覆蓋)

我連接到數據庫的產品列表,如果有多個具有相同的itemid,我調用一個javascript函數。這是相同的功能,但我增加了一些位,使其獨特,所以我可以得到正確的價格等,但這一個JavaScript變量/數組總是相同的,我認爲它覆蓋了以前聲明的變種。

到我的網頁鏈接是http://www.operationbraveheart.org.uk/jcart/testshop.php

我認爲這是這一行做或可能是有很多的增值經銷商越來越overwitten做?

var price = item_prices_by_size[size].Price, 

我有一個理論,如果我遞增VARNAME所以不是變種形式,我得到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

您是否試圖在建立連接之後從服務器輸出此JS,或者您希望能夠在客戶端使用PHP變量?如果你認爲你可以使用服務器端變量而不需要中間人(ajax),這可能是你的問題的起點。 – scrappedcola

回答

0

如預期的那樣使用php來更改一些var名稱,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>