这是我的第一个问题,所以我将从一个无用的位开始。我想说谢谢,我现在已经成为堆栈溢出潜伏者了一段时间,jQuery和PHP中的不同问题上的很多贡献者帮助我甚至不知道他们纠正了我,所以我想开始感谢你到堆栈溢出的每个贡献者。
目前我正在尝试为网站编写一个简单的比较工具。在荷兰,人们可以选择自己的电力公司,为他们提供电力/燃气。由于价格差异,人们会试图找到最便宜的。
我正在组合一个PHP数组并使用'for each'来生成HTML内容。该数组看起来像这样:
<?php
$leverancierarray = array(
// Iedere array hieronder is één leverancier.
array (
'leverancier' => 'Nuon',
'korting_tekst' => '100 euro korting',
'korting_value' => 100,
'contract_duur' => '12 maanden', // Aantal maanden in tekst
'contract_duur_value' => 12, // Aantal maanden
'tarief_enkel_stroom' => 0.18, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_dubbel_stroom' => 0.21, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_piek_stroom' => 0.21, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_gas' => 0.60, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_vastrecht_stroom' => 1.05, // In euro's.
'tarief_vastrecht_gas' => 1.05, // In euro's.
'tarief_transport_stroom' => 350, // In euro's.
'tarief_transport_gas' => 124, // In euro's.
'heffingskorting' => 347, // heffingskorting.
),
array (
'leverancier' => 'Qurrent',
'korting_tekst' => '100 euro korting',
'korting_value' => 75,
'contract_duur' => '12 maanden', // In tekst
'contract_duur_value' => 12, // Aantal maanden
'tarief_enkel_stroom' => 0.19, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_dubbel_stroom' => 0.21, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_piek_stroom' => 0.21, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_gas' => 0.58, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_vastrecht_stroom' => 5.75, // In euro's.
'tarief_vastrecht_gas' => 5.75, // In euro's.
'tarief_transport_stroom' => 350, // In euro's.
'tarief_transport_gas' => 124, // In euro's.
'heffingskorting' => 347, // heffingskorting.
),
array (
'leverancier' => 'Oxxio',
'korting_tekst' => '100 euro korting',
'korting_value' => 80,
'contract_duur' => '12 maanden', // Aantal maanden in tekst
'contract_duur_value' => 12, // Aantal maanden
'tarief_enkel_stroom' => 0.20, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_dubbel_stroom' => 0.21, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_piek_stroom' => 0.21, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_gas' => 0.58, // In cent ipv euro's. Makkelijker om de komma te berekenen
'tarief_vastrecht_stroom' => 3.75, // In euro's.
'tarief_vastrecht_gas' => 3.75, // In euro's.
'tarief_transport_stroom' => 350, // In euro's.
'tarief_transport_gas' => 124, // In euro's.
'heffingskorting' => 347, // heffingskorting.
),
);
?>
虽然页面的一部分看起来像这样(使用Joomla CMS):
<div class="leverancier-container vergelijkbox" id="box-one">
<?php
foreach ($leverancierarray as $leverancierrow) {
$lowerleverancier = strtolower($leverancierrow['leverancier']);
$displayleverancier = ucwords($leverancierrow['leverancier']);
$totaal_stroom_kosten = (($leverancierrow['tarief_enkel_stroom']*3500)+($leverancierrow['tarief_vastrecht_stroom']*12));
$totaal_gas_kosten = (($leverancierrow['tarief_gas']*1600)+($leverancierrow['tarief_vastrecht_gas']*12));
$transport_kosten = ($leverancierrow['tarief_transport_stroom']+$leverancierrow['tarief_transport_gas']);
$heffingskorting = $leverancierrow['heffingskorting'];
$totaal_transport_kosten = ($transport_kosten-$heffingskorting);
$korting = $leverancierrow['korting_value'];
$jaarbedrag = ($totaal_stroom_kosten+$totaal_gas_kosten+$totaal_transport_kosten);
$totaal_jaarbedrag = str_replace('.',',',round(($jaarbedrag-$korting),0));
$maandbedrag = str_replace('.',',',round(($totaal_jaarbedrag/12),0));
echo '<div data-sort="'.$maandbedrag.'" class="leverancier-box" id="'.$lowerleverancier.'">
<div class="leverancier-logo">
<div><a href="/aanbieder/'.$lowerleverancier.'" target="_blank" rel="nofollow"><span class="logo_'.$lowerleverancier.'"></span></a></div>
</div>
<div class="leverancier-contract">
<div>
<h3>Contract</h3>
</div>
<div class="leverancier-voorwaarden">
<div>Duur: <span>'.$leverancierrow['contract_duur'].'</span></div>
<div>Actie: <span>'.$leverancierrow['korting_tekst'].'</span></div>
</div>
<div>
<div><a href="#">Bekijk de tarieven.</a></div>
</div>
</div>
<div class="leverancier-prijs">
<div>
<h3>Gemiddelde prijs</h3>
</div>
<div class="leverancier-voorwaarden">
<div class="prijs_div_homepage"><span class="prijs_groot_homepage">€ '.$maandbedrag.'</span> per maand</div>
</div>
<div>
<div><span>€ '.$totaal_jaarbedrag.'</span> per jaar</div>
</div>
</div>
<div class="leverancier-bestellen">
<div>
<div><a href="/aanbieder/'.$lowerleverancier.'" target="_blank" rel="nofollow"><span class="knop_3">Overstappen</span></a></div>
<div><a href="#">Meer informatie</a></div>
</div>
</div>
</div>';
}
?>
</div>
for each将创建3个独立的'leverancier-box'div,其中包含来自数组的信息。我试图让同事尽可能简单地更新价格。他们只需要更改'tarief_enkel_stroom'等,以便$ maandbedrag值更新。因为数组中的第三个提供程序可以更便宜,我正在尝试使用jQuery根据$ maandbedrag的值对div进行排序。
我尝试在父元素中使用data-sort =“'。$ maandbedrag。'”对div进行排序。我尝试使用this问题作为参考,但我无法使其发挥作用。我也尝试使用this方法,但是我不完全理解这两种方法的代码,我相信这是解决这个问题的最大问题。
再次感谢你看这个问题,我希望有人可以告诉我如何解决我面临的问题。
PS:我认为jQuery是根据$ maandbedrag的值对3个div进行排序的最佳方法。
亲切的问候,
凯文。
编辑:
我使用jQuery解决了这个问题。我使用this主题作为指南。