2011-09-27 4 views
2

J'ai une question concernant une barre de progression. J'ai lu à peu près tous les articles ici, mais il semble que je ne peux pas faire fonctionner l'un d'entre eux dans mon scénario. J'ai ce qui suit qui montre des nombres tels que 50/500 où 50 est le nombre réel et 500 est le maximum.css barre de progression

$SQL = "SELECT * FROM db_ships WHERE ship_id = $user[ship_id] LIMIT 1"; 
$result = mysql_query($SQL); 

while ($db_field = mysql_fetch_assoc($result)) { 
print $db_field['shields'] . "/"; 
print $db_field['max_shields'] . ""; 

La plupart des barres de progression que je vois, décrire les délais que je dois montrer visuellement la fraction

print $db_field['shields'] . "/"; 
    print $db_field['max_shields'] . ""; 

Comment puis-je placer ce que je puisse avoir une barre de progression illustrant les progrès? Je suis désolé je ne suis pas bon à css. Toute aide serait grandement appréciée.

+0

Que voulez-vous dire? Au moment où CSS est traité, vous seriez déjà à 100%! – bfavaretto

+0

Voulez-vous une barre de prgression qui affiche 10% pour les nombres que vous avez mentionnés ou voulez-vous une barre de progression pour la requête en tant que telle. Si oui, pourquoi? Chaque requête qui prend moins d'une seconde est considérée comme une requête lente. Pendant 1 seconde, l'utilisateur n'aura pas le temps de regarder une barre de progression, de plus la barre de progression devra communiquer avec le processus de manière asynchrone, sinon vous obtiendrez la réponse et vous serez à 100%. – markus

+0

Je ne veux pas de barre de progression basée sur le temps. J'ai besoin d'une barre visuelle pour représenter 50/500. en fonction des numéros stockés dans la base de données. – user964535

Répondre

0
echo "<div class=\"progressbar_container\"><div class=\"progressbar\" style=\"width: ".($db_field['shields']/$db_field['max_shields']*100)."%\"></div></div>"; 

Et définissez les styles selon vos besoins. Peut-être une bordure pour le conteneur et une couleur de fond pour la barre principale. C'est tout ce qu'il y a à une barre de progression de base.

+0

mes excuses, le ci-dessus ne montre rien. Ai-je raté quelque chose? – user964535

+0

Essayez d'ajouter un 'height' à la barre de progression principale. –

+0

Aussi, assurez-vous que vous avez stylé '.progressbar_container' et' .progressbar' dans votre fichier CSS. –

1

Un moyen simple de le faire est de placer un div à l'intérieur d'un div plus grand et de définir la largeur en pourcentage de la div interne. Here's a fiddle montrant ce que je veux dire.

Vous pouvez obtenir le pourcentage de max_shields en écrivant (en supposant qu'ils sont tous les deux chiffres)

$percentage = $db_field['shields'] * ($db_field['max_shields']/100); 

Appliquer le pourcentage que la largeur de la div intérieure.

<div id="progress-inner" style="width: <?php echo $percentage; ?>%;"></div> 

Ce serait un jeu d'enfant pour animer cette barre de progression en utilisant jQuery animate si vous vouliez.

+0

ce sont les deux nombres. – user964535

+1

Super! Laisser un commentaire s'il y a des problèmes avec la solution – Hubro

+0

$ SQL = "SELECT * FROM db_ships OERE ship_id = $ utilisateur [ship_id] LIMIT 1"; $ resultat = requête mysql ($ SQL); while ($ db_field = mysql_fetch_assoc ($ resultat)) { imprime $ db_field ['shields']. "/"; imprime $ db_field ['max_shields'].""; $ pourcentage = $ db_field ['shields'] * ($ db_field ['max_shields']/100);

...... ne montrant toujours rien. – user964535

0
<style type="text/css"> 
.table, th 
{ 
background-color:Blue; 
border-collapse:collapse; 
} 
<table class="table" > 
     <tr id = "row1" > 
      <td id ="cell1" class="td"></td> 
     </tr> 
    </table>  
    <script language="javascript" type="text/javascript" > 

    var i = 1; 
    var timerID = 0; 
    timerID = setTimeout("progress()",200); 
    var scell = ''; 
    var sbase = ''; 
    sbase = document.getElementById("cell1").innerHTML; 

function progress() 
{ 

    var tend = "</tr></table>"; 
    var tstrt = "<table><tr>"; 
    scell = scell + "<td style='width:15;height:25' bgcolor=blue>"; 

    document.getElementById("cell1").innerHTML = sbase + tstrt + scell + tend; 


    if(i < 50) 
    {      
     i = i + 1; 

     timerID = setTimeout("progress()",200); 
    } 
    else 
    { 
     if(timerID) 
     { 
    document.getElementById("cell1") 
     .innerHTML=document.getElementById("cell1").innerHTML 
     + "</tr></table>"; 
      clearTimeout(timerID); 

     } 
    } 

    } 
    </script>