我有以下PHP代碼本PHP代碼生成5個li
標籤你能解釋如何遷移/生成一個HTML代碼到另一個HTML代碼 - PHP?
<?php
function calculate_stars($max, $rating){
$full_stars=floor($rating);
$half_stars = ceil($rating-$full_stars);
$gray_stars = $max-($full_stars + $half_stars);
return array ($full_stars, $half_stars, $gray_stars);
}
function display_star($rating){
$output="";
$number_stars = calculate_stars(5,$rating);
$full = $number_stars[0];
$half = $number_stars[1];
$gray = $number_stars[2];
$output ='<ul class="star-rating">';
if($gray)
for ($i=0;$i<$gray;$i++)
{
$output .= '<li class="star-icon">☆</li>';
}
if($half){
$output .= '<li class="star-icon half">☆</li>';
}
if($full){
for($i=0; $i<$full;$i++)
{
$output .= '<li class="star-icon full">☆</li>';
}
}
$output .='</ul>';
return $output;
}
echo display_star(0.3);
exit;
?>
結果:
<ul class="star-rating">
<li class="star-icon">☆</li>
<li class="star-icon">☆</li>
<li class="star-icon">☆</li>
<li class="star-icon">☆</li>
<li class="star-icon half">☆</li>
</ul>
說明關於
$half
和$full
可變$half
加載類class="star-icon half"
結果:
變量$full
添加類class="star-icon full"
結果:
半星等同於:0.5
1.5
2.5
3.5
4.5
全明星等同於:1
2
3
4
5
而這一切都是通過以下方式控制:
echo display_star(0.5);
現在我的問題
怎樣才能按下列順序根據PHP display_star(4.5);
的價值尊重他們的數據和類10個li
標籤?
在新的代碼來生成必須在所有li
類class="c-rating__item"
和類left
交換一個(或傳遞li
)和順序data-index
,因爲它是用這種方式必須由生成我的HTML代碼這個值的手段是php display_star(0.5);
。
<ul class="c-rating">
<li class="c-rating__item is-active left" data-index="0"></li>
<li class="c-rating__item" data-index="1"></li>
<li class="c-rating__item left" data-index="2"></li>
<li class="c-rating__item" data-index="3"></li>
<li class="c-rating__item left" data-index="4"></li>
<li class="c-rating__item" data-index="5"></li>
<li class="c-rating__item left" data-index="6"></li>
<li class="c-rating__item" data-index="7"></li>
<li class="c-rating__item left" data-index="8"></li>
<li class="c-rating__item" data-index="9"></li>
</ul>
中間的恆星是等同於下面的數據索引0
2
4
6
8
而且is-active
類是明星的所有的星星或半填充的全球經理。
實際例子,如果我們產生一個等級的HTML代碼display_star(3.5);
結果應該是以下幾點:
<ul class="c-rating">
<li class="c-rating__item is-active left" data-index="0"></li>
<li class="c-rating__item is-active" data-index="1"></li>
<li class="c-rating__item is-active left" data-index="2"></li>
<li class="c-rating__item is-active" data-index="3"></li>
<li class="c-rating__item is-active left" data-index="4"></li>
<li class="c-rating__item is-active" data-index="5"></li>
<li class="c-rating__item is-active left" data-index="6"></li>
<li class="c-rating__item" data-index="7"></li>
<li class="c-rating__item left" data-index="8"></li>
<li class="c-rating__item" data-index="9"></li>
</ul>
注: CSS樣式類here show two examples full stars and middle star來獲得更徹底地瞭解。
你能解釋一下什麼是$一半,$滿了嗎? – Krish
@AmLy通過值的方式通過php添加類的風格,有趣的是認爲這隻能使用jquery – May
@AmLy更新我的答案...希望它能幫助你 – Krish