Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie wyników sondy
Forum PHP.pl > Forum > PHP
Arek00
mam funkcję która wyświetla wyniki sondy w formie poziomych słupków jeden pod drugim:
  1. <?php
  2. $output .= '<div class="poll">';
  3. if ($block) {
  4. $output .= '<div class="title">'. $node->title .'</div>';
  5. }
  6. foreach ($node->choice as $i => $choice) {
  7. if ($choice['chtext'] != '') {
  8. $percentage = round($choice['chvotes'] * 100 / max($votestotal, 1));
  9. $output .= '<div class="text">'. drupal_specialchars($choice['chtext']) .'</div>';
  10. $output .= '<div class="bar">';
  11. $output .= '<div style="width: '. $percentage .'%;" class="foreground"></div>';
  12. $output .= '</div>';
  13. $output .= '<div class="percent">'. $percentage .'%'. (!$block ? ' ('. format_plural($choice['chvotes'], '1 vote', '%count votes') .')' : '') .'</div>';
  14. }
  15. }
  16. $output .= '<div class="total">'. t('Total votes') .": $votestotal</div>";
  17.  
  18. $output .= '</div>';
  19.  
  20. return $output;
  21. ?>


wyniki są wyświetlane w taki sposób że cały słupek to 100% głosów i jeśli mam np. dwie odpowiedzi: jedna 70%, druga 30% to jest zaznaczana odpowiednio procentowa długość słupka. ja chciałbym aby przy takim wyniku sondy odpowiedź która ma najwięcej głosów zajmowała cały słupek tak jak jest to tutaj
maverickkk
Nie będę wstawiał to całego swojego kodu. Głównie rozchodzi się o zapis

$szeroko = $wynik/$max*$szerokosc;

gdzie:

$szerokosc = 90; // szerokość nawiększego słupka
$wynik = // to aktualny liczba odpowiedzi na daną opcje
$max = // to maxymalna ilość odpowiedzi spośród wszystkich opcji w sondzie

a

$szeroko = // to szerokość którą wstawiasz do diva
Arek00
udało mi się samemu dojść. zmieniłem:
  1. <?php
  2. $percentage = round($choice['chvotes'] * 100 / max($votestotal, 1));
  3. ?>

na
  1. <?php
  2. $percentage = round($choice['chvotes'] / $votesmax * 100);
  3. ?>

w sumie to jest to samo co ty napisałeś ale zastanawiam się dlaczego $szerokosc = 90? w takim przypadku mając np. 10 wszystkich odpowiedzi i wszytkie 10 odpowiedzi jest tylko na jedną opcję to słupek będzie miał długość 90%
maverickkk
To nie są procenty tylko px.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.