我想我知道为什么我会遇到问题,但我对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>
答案 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>