好的,所以我有一个从我的数据库中提取的汽车列表,我循环一些HTML来拉动所有汽车。其中一个要素是Price。
<div class="price" id="<?php echo $carid; ?>">€<?php echo number_format($bookingprice, 2); ?></div>
<input type="hidden" name="price" id="hiddenprice" value="<?php echo number_format($bookingprice, 2); ?>" />
按要求提供更多完整的循环HTML:
$getcars = $carstring;
while($searchcars = mysql_fetch_array($getcars)) {
<div class="listing-feature">
<div class="price" id="<?php echo $carid; ?>">€<?php echo number_format($bookingprice, 2); ?></div>
<input type="hidden" name="price" id="hiddenprice" value="<?php echo number_format($bookingprice, 2); ?>" />
<p>Initial Quote</p>
<div><button class="button" type="submit">Book</button></div><br/><br/>
<div><a href="#" class="email-link">Temp Link</a></div>
}
最初这个值是由前一个PHP页面通过POST
变量设置的。这是一个预订价格。最重要的是你可以在你的包中添加'extras',我已经编写了一些JQuery来计算新价格并在没有页面刷新的情况下更新值。
这是(淡化):
$('.satnav').change(function() {
$('#satnavadd').show();
if (typeof(satnavtotal) != "undefined" && satnavtotal !== null) {
price = $("#hiddenprice").val() - satnavtotal;
}else{
price = $("#hiddenprice").val();
}
numofdays = "<?php echo $length->days; ?>";
numberofsatnav = $(this).val();
var satnavcost = Number(3) * Number(numofdays);
satnavtotal = Number(numberofsatnav) * Number(satnavcost);
newprice = Number(price) + Number(satnavtotal);
$("input#satnavprice").val(satnavtotal);
$("input#satnavnum").val(numberofsatnav);
$("input#hiddenprice").val(newprice);
$('#<?php echo $carid; ?>').html("€" + newprice.toFixed(2));
});
好的,你可以说它做了一些计算,然后试图找出ID,然后覆盖HTML,这一行:
$('#<?php echo $carid; ?>').html("€" + newprice.toFixed(2));
与前一行有关:
<div class="price" id="<?php echo $carid; ?>">€<?php echo number_format($bookingprice, 2); ?></div>
问题是它只会定位并更新循环中从数据库中提取的最后一个条目。
我想要一种方法告诉我的JQuery从数据库中定位一个特定的行,而不是总是只是最后一个条目。
这可能吗?
因此,例如,如果拉出5个enteries,并且用户在第二行中添加extrason,我想告诉JQuery更新用户的行价,而不仅仅是最后一行。
即使我已将ID设置为唯一的carID,但显然会被覆盖,直到拉出最后一行,因此JQuery将始终假定这是ID,并且只更新该价格。
有什么建议吗?我真的很感激。