Visualizzazione dei risultati da 1 a 6 su 6

Discussione: range tra due numeri

  1. #1

    range tra due numeri

    Ciao, non riesco a fare funzionare un range tra 2 percentuali.
    Dovrebbe uscire la barra verde, cioè "success" e invece esce la barra rossa "danger".
    Chi mi può aiutare?

    Grazie

    $percentuale_pdf = round($row_pdf_visualizzati/$row_pdf*100) . '%';

    <?php
    if($percentuale_pdf >= "61%" && $percentuale_pdf <= "100%") {
    ?>
    <span style="width: <?php echo $percentuale_pdf ?>;" class="progress-bar progress-bar-success green-sharp">
    <?php
    }
    if($percentuale_pdf >= "30%" && $percentuale_pdf <= "60%") {
    ?>
    <span style="width: <?php echo $percentuale_pdf ?>;" class="progress-bar progress-bar-warning grey-sharp">
    <?php
    }
    if($percentuale_pdf <= "29%") {
    ?>
    <span style="width: <?php echo $percentuale_pdf ?>;" class="progress-bar progress-bar-danger grey-sharp">
    <?php
    }
    ?>
    Ultima modifica di multimedia2; 28-06-2017 a 13:29

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Togli i segni di percentuale

  3. #3
    non funziona perchè la variabile $percentuale_pdf contiene all'interno il simbolo %

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il problema è che stai confrontando delle stringhe, non dei numeri.
    In una stringa, 1 viene prima di qualsiasi altro numero eccetto lo 0, quindi la condizione >= 61% E <= 100% non sarà mai vera perché la stringa 100% viene prima della stringa 61%

    Metti di avere 84%, risulta correttamente >= di 61%, ma non è <= di 100% perché 1 viene prima di 8, quindi 100%<84%

    Soluzioni:
    1) da $percentuale_pdf togli % con str_replace() e togli % anche dagli if, così hai effettivamente dei confronti tra numeri

    2) cambi i confronti in
    Codice PHP:
    if ($percentuale_pdf <= "29%") { 
        
    // qui danger 
    }
    else if (
    $percentuale_pdf <= "60%") { 
        
    // qui warning
    }
    else { 
        
    // qui success

    Purché la percentuale 0% o 0,...% non sia possibile, altrimenti ti darebbe success

    3) per il confronto usi strnatcmp()

  5. #5
    Ciao Alhazred,
    ho fatto così ma ora non esce nessuna delle 3 barre


    <?php
    // PERCENTUALE
    $percentuale_pdf = round($row_pdf_visualizzati/$row_pdf*100);



    if($percentuale_pdf <= "29") {
    ?>
    <span style="width: <?php echo $percentuale_pdf ?>;" class="progress-bar progress-bar-danger green-sharp">
    <?php
    }
    elseif($percentuale_pdf <= "60") {
    ?>
    <span style="width: <?php echo $percentuale_pdf ?>;" class="progress-bar progress-bar-warning grey-sharp">
    <?php
    }
    else {
    ?>
    <span style="width: <?php echo $percentuale_pdf ?>;" class="progress-bar progress-bar-success grey-sharp">
    <?php
    }
    ?>

  6. #6
    ho capito ora che le barre funzionano solo se c'è la percentuale, così le ho rimesse, ma continuando ad utilizzare il codice che mi hai suggerito e ora funziona. Grazie :-)

    <?php
    // PERCENTUALE
    $percentuale_video = round($row_video_visualizzati/$row_video*100).'%';


    if($percentuale_video <= "29%") {
    ?>
    <span style="width: <?php echo $percentuale_video ?>;" class="progress-bar progress-bar-danger grey-sharp">
    <?php
    }
    elseif($percentuale_video <= "60%") {
    ?>
    <span style="width: <?php echo $percentuale_video ?>;" class="progress-bar progress-bar-warning grey-sharp">
    <?php
    }
    else {
    ?>
    <span style="width: <?php echo $percentuale_video ?>;" class="progress-bar progress-bar-success grey-sharp">
    <?php
    }
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.