Я пытаюсь кодировать специальные объекты с помощью функции, вот что я пытаюсь сделать:
это функция ratable, со звездами ratables, у меня есть две функции, которые отображают сообщение ratable, одна отображает результаты по умолчанию, а вторая, когда я даю ему новую оценку
function showStars($ratableKey) {
...
$textDesc = "<div id=\"rabidRating-$ratingId-description\" class=\"ratingText\">".$this->getStarMessage($rating)."</div>";
echo $textDesc
}
я называю getStarMessage двумя разными способами
function getStarMessage($rating) {
$stars = $this->percentToStars($rating['rating']);
if ($rating[totalRatings] > 1) $s = "s";
$div_stars = "<div class=\"rate\">";
$result= "$stars/$this->stars ".$div_stars." ($rating[totalRatings] avis)</div>";
$result= html_entity_decode($result);
return $result;
}
По умолчанию (в функции showStars) он работает нормально (с или без html_entity_decode)
но когда я вызвал функцию getStarMessage в другой функции
function doVote($ratableId, $percent) {
...
$rating = $this->loadRating($id);
$return = $this->getStarMessage($rating);
echo $return; ==> the problem is here
}
в исходном коде это отображает
<div class="ratingText " id="rabidRating-9-description">2.8/5 <div class="rate"> (141 avis)</div></div>
и, следовательно, на выходе это
2.8/5 <div class="rate"> (142 Stars)</div>
Он отображается не как HTML-сущности, а как простая строка.
Я делаю что-то неправильно ?
Вот несколько скриншотов:
отображение по умолчанию:
После рейтинга (клик по звездам)
Вы хотите, чтобы этот div.rate отображался как HTML? если так, то не стоит ставить< «и т. д. сущностей -> это делает полную противоположность того, что вы хотите — он сохраняет символ» меньше чем «в строке.
Так что, если я вас хорошо понял, ваш код должен быть
<div class="ratingText " id="rabidRating-9-description">2.8/5 <div class="rate"> (141 avis)</div></div>
Удачи.
Других решений пока нет …