Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis en train de créer une bar de chargement pour le chargement des données d'une page qui doit afficher le contenu d'un dossier.
Je suis aller voir dans le doc de Zend et j'ai trouvé cette "unique" page d'explication : http://framework.zend.com/manual/fr/zen … ssbar.html
Je n'y arrive toujours pas malgré ça. Alors je me tourne vers vous pour avoir vos conseils (explication, tuto, ...).
Actuellement j'ai fait ceci avec la doc :
public function indexAction() { $this->_progressBar = new Zend_ProgressBar(new Zend_ProgressBar_Adapter_JsPush, 0, 100); $this->scanDirectory(BASE_PATH . S . 'Media'); $this->_progressBar->finish(); $this->view->structure = $xhtml; } private function scanDirectory($directory, $root = 'media') { $folder = opendir($directory); while ($entry = readdir($folder)) { if (is_dir($directory . S . $entry) && $entry != '.' && $entry != '..') { $this->_array[$root][0][] = $entry; $this->scanDirectory($directory . S . $entry, $entry); } elseif (is_file($directory . S . $entry)) { $this->_array[$root][1][] = $entry; } $this->_progressBar->update($this->_i++); } }
ensuite j'ai fais comme dans l'Exemple 41.1 de la doc de zend mais j'ai une grande quantité de ligne qui viennent d'afficher dans le code html (entre les balise body) :
<script type="text/javascript">parent.Zend_ProgressBar_Update({"current":0,"max":100,"percent":0,"timeTaken":0,"timeRemaining":null,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":0,"max":100,"percent":0,"timeTaken":0,"timeRemaining":null,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":1,"max":100,"percent":1,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":2,"max":100,"percent":2,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":3,"max":100,"percent":3,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":4,"max":100,"percent":4,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":5,"max":100,"percent":5,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":6,"max":100,"percent":6,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":7,"max":100,"percent":7,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":8,"max":100,"percent":8,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> <script type="text/javascript">parent.Zend_ProgressBar_Update({"current":9,"max":100,"percent":9,"timeTaken":0,"timeRemaining":0,"text":null});</script><br /> ........
Et j'en passe.
Pouvez-vous me donnée un petit coup de pousse ?
merci beaucoup d'avance.
PS : Même un retour d'expérience me serais utile
Dernière modification par nicko (11-10-2009 17:54:35)
Hors ligne
regarde surtout le lien : http://www.z-f.fr/forum/viewtopic.php?id=2487
------------
De mémoire, je fais les appels ajax avec jquery. je place le résultat dans un iframe caché : $("idDeMonIframe).html(resultatAjax). Le code javascript est alors exécuté et il cherche une fonction ( dans parent de ton iframe ) nommé Zend_ProgressBar_Update !
Tu dois alors créer toi même ta fonction javascript Zend_ProgressBar_Update() et récupérer les données et mettre a jour ton progressbar.
exemple
function Zend_ProgressBar_Update(data) { $('#percent').html( data.percent ); $('#time_taken').html(data.timeTaken); $('#time_remaining').html(data.timeRemaining); }
Ami
Dernière modification par ami (12-10-2009 09:51:35)
Hors ligne
Bonjour,
j'avais le même problème et j'ai suivi http://www.z-f.fr/forum/viewtopic.php?id=2487 puis http://electron-libre.fassnet.net/barre … upload.php pour comprendre finalement qu'il fallait donner un nom à l'iframe et le mettre en target dans le formulaire.
ex :
dans la vue :
<div id="zend-progressbar-container"> <span class="progressBar" id="pb1" style="display:none;">0%</span> </div> <iframe id="long-running-process" name="tfrm" style="display:none;"></iframe>
Formulaire dans le même fichier vue :
<form method="post" action="" target="tfrm">
fichier javascript (j'utilise le progressbar jquery dont le lien est dans la doc http://framework.zend.com/manual/fr/zen … ction.html) :
function Zend_ProgressBar_Update(data) { $("#pb1").css("display", "block"); $("#pb1").progressBar(data.percent); }
Dans le contrôleur ou librairie quelconque :
$progressbar = new Zend_ProgressBar(new Zend_ProgressBar_Adapter_JsPush(), 0, 100);
dans la boucle :
$progressbar->update(($ma_valeur*100)/$mon_total);
Note : J'ai du modifier le source de jquery.progressbar.js pour mettre les chemins des images en dur...
Dernière modification par sankokai (28-10-2010 17:44:12)
Hors ligne
Pages: 1