2013-02-24 72 views
0

如果可以,请引导我在正确的方向。如何解决getElementById vs php中的循环

我的情况

我有一个PHP for循环中提取数据的脚本。在该循环中有一个叫做Price的参数。在同一个循环中,使用javascript函数将Price,从Jap Yen转换为Aus Dollars,最后在Aus Dollars中显示价格。

问题

即时通讯使用getElementById显示澳元的价格和进出口使用计数器的号码添加到年底,这里是我的js功能可按

function CarCostCalculatorSINGLE(enteredPriceInYen,spanID){ 

    document.getElementById("calPriceInAudSINGLE"+spanID).innerHTML="$"+TotalCarCostInAUD.formatMoney(0, '.', ','); 
} 

在我的PHP脚本跨度如此IDs不冲突。

$callPriceInAudCounter++; 
<span id="calPriceInAudSINGLE<?php echo $callPriceInAudCounter; ?>">AUD Price Goes Here</span> 

<script> 
    CarCostCalculator(<?php echo $fields['price']; ?>, <?php echo $callPriceInAudCounter; ?>); 
</script> 

林失落

林现在已经失去了监守在一些网页上我必须include循环显示Side bar content等和IDs冲突BIGTIME。这不是解决这个问题的最好方法,我不知道我还能做些什么来保持循环,并在不重复功能的情况下显示价格。有没有替代getElementById或者你们可以请指导我解决这个问题的最佳方法是什么?

请告诉我,如果你想让我澄清更多,我很乐意。

+1

我认为你必须向我们展示了,你正在试图解决的问题的页面生成的HTML(不是PHP) 。在看不到HTML的情况下太难遵循你的要求。 – jfriend00 2013-02-24 07:38:17

+0

为什么不直接用PHP计算价格而不是用JavaScript计算? – Supericy 2013-02-24 07:39:50

+0

@Supericy,因为该函数中有更多的事情发生在计算最终价格。它不只是转换。因为我有''使用该功能,不是吗?如果我错了,请纠正我。 – user1889007 2013-02-24 07:41:30

回答

1

不是最好的解决方案,但可以使用uniqid

<?php $elementID = uniqid('calPriceInAudSINGLE'); ?> 

<span id="<?php echo $elementID ?>">AUD Price Goes Here</span> 

<script> 
    CarCostCalculator(<?php echo $fields['price']; ?>, "<?php echo $elementID ?>"); 
</script> 

如果你有jQuery可用,那么我可以给你一个更好的解决方案。

<span class="aud-price" data-yen-price="<?php echo $fields['price']; ?>">AUD Price Goes Here</span> 

然后在你的JavaScript的地方:

// onload (assuming all the elements are loading at once (ie not AJAX)) 
$(function() { 
    $(".aud-price").each(function() { 
     var self = $(this); 

     self.html("$"+TotalCarCostInAUD.formatMoney(self.data("yen-price"), '.', ',')); 
    }); 
}); 
+0

谢谢。是的,我有jQuery可用,你会介意证明更好的解决方案吗? – user1889007 2013-02-24 08:14:39