Barre de progression et XMLHTTPRequest

Résolu
FredChut Messages postés 2 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009 - 10 janv. 2009 à 21:15
FredChut Messages postés 2 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009 - 13 janv. 2009 à 21:08
Salut a tous,
Bravo au forum qui m'aide a fabriquer du code quand je n'y arrive pas tout seul !

Je suis en train de créer un site qui, entre autres, m'affiche les transferts de fichiers initiés par une application tierce.
Celle derniere renseigne une base MsSql sur les fichiers en transferts et met a jour le champ progress régulièrement.

Grace au code qui suit, je suis capable d'afficher la liste des transferts et d'afficher leur pourcentage de progression.

Ma question est,
comment faire pour réactualiser le pourcentage sans recharger la page et dans un deuxième temps comment réaliser une barre de progression dans la cellule concernée du tableau.

J'ai fouillé dans les forums Javascript et PHP.
Apparemment il existe une méthode utilisant XMLHTTPRequest.
Je dois vous avouer que je suis arrivé au bout de mes (maigres) compétences et n'ai pas réussi a adapter un code existant.

Autre question:
Ne serait il pas intelligent de créer une page progress.php ne réalisant une requete que sur PROGRESS dans le cas d'une utilisation de XMLHTTPRequest et d'un appel  xhr.open("GET","progress.php",true)
Et dans ce cas comment rattacher les valeurs retournées a la requete principale ?

Voici mon code:


<?php


set_time_limit(60);


$conn= odbc_connect('****','****','****');


if (!$conn)


{exit("La connexion a echoue: " . $conn);}


$sql="


SELECT


[SUPPORT].ID_TECH,


[SUPPORT].TITLE,


[LOCALISATIONS].LABEL,


[LOCALISATIONS_1].LABEL AS [LABEL_1],


[TASKS].PRIORITY,


[TASKS].PROGRESS,


[TASK_TYPE].LABEL AS [LABEL_2]


FROM ( ( ( ( ( [Direct-8].dbo.TASK_SRC [TASK_SRC]


INNER JOIN


[Direct-8].dbo.TASKS [TASKS]


ON ([TASK_SRC].TASK_ID = [TASKS].TASK_ID))


INNER JOIN


[Direct-8].dbo.LOCALISATIONS [LOCALISATIONS]


ON ([TASK_SRC].LOCALISATION_ID =


[LOCALISATIONS].LOCALISATION_ID))


INNER JOIN


[Direct-8].dbo.SUPPORT [SUPPORT]


ON ([SUPPORT].SUPPORT_ID = [TASK_SRC].SUPPORT_ID)


AND ([SUPPORT].LOCALISATION_ID =


[LOCALISATIONS].LOCALISATION_ID))


INNER JOIN


[Direct-8].dbo.TASK_TYPE [TASK_TYPE]


ON ([TASKS].TASK_TYPE = [TASK_TYPE].TASK_TYPE))


INNER JOIN


[Direct-8].dbo.TASK_DEST [TASK_DEST]


ON ([TASK_DEST].TASK_ID = [TASKS].TASK_ID))


INNER JOIN


[Direct-8].dbo.LOCALISATIONS [LOCALISATIONS_1]


ON ([TASK_DEST].LOCALISATION_ID = [LOCALISATIONS_1].LOCALISATION_ID)


ORDER BY [TASKS].PROGRESS DESC, [TASKS].PRIORITY DESC


";


$rs=odbc_exec($conn,$sql);


$nombre=0;


$color=0;


if (!$rs)


{


exit("Erreur SQL");


}


echo "
";


echo "\";

echo \" TECH ID |\";

echo \"TITRE |\";

echo \"TYPE |\";

echo \"DE |\";

echo \"VERS |\";

echo \"PRIORITY |\";

echo \"PROGRESS |\";

while (odbc_fetch_row($rs))

{

$TECHID =odbc_result($rs,\"ID_TECH\");

$TITRE=odbc_result($rs,\"TITLE\");

$TYPE=odbc_result($rs,\"LABEL_2\");

$DE=odbc_result($rs,\"LABEL\");

$VERS=odbc_result($rs,\"LABEL_1\");

$PRIORITY=odbc_result($rs,\"PRIORITY\");

$PROGRESS=odbc_result($rs,\"PROGRESS\");

if ($color==0)

{

echo \"----
\";

$color=1;

}

else

{

echo \"----
\";

$color=0;

}

echo \"";

echo "$TECHID ";

echo ", \";

echo \"";

echo utf8_encode($TITRE);

echo ", \";

echo \"";

echo "$TYPE ";

echo ", \";

echo \"";

echo "$DE ";

echo ", \";

echo \"";

echo "$VERS ";

echo ", \";

echo \"";

echo "$PRIORITY ";

echo ", \";

echo \"";

if (empty($PROGRESS)) echo "QUEUED";

else echo "$PROGRESS ";

echo ", \";

$nombre=$nombre+1;

}

echo "

";


echo "TACHES: ";


echo "$nombre";


odbc_close($conn);


?>

Merci par avance pour les reponses.
Fred.

2 réponses

Anthed Messages postés 152 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 17 janvier 2014 3
13 janv. 2009 à 16:43
Hello,

XMLHTTPRequest s'utilise via Ajax. Il y a plein de tuto qui traînent sur ce site et ailleurs. Inspire-t-en :)

Bon courage.
3
FredChut Messages postés 2 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 21:08
Merci de m'avoir répondu Anthed.

J'ai finalement réussi en externalisant toute la partie requete et affichage du tableau sur une autre page progress.php.
L'appel de cette page par xmlhttprequest fonctionne.

J'ai effectivement récupéré la partie script sur un tutorial simple.
Les exemples sur lesquels je m'appuyait avant était trop ciblés.
(controle de transfert de fichier etc...)
En repartant des bases c'est beaucoup plus facile de créer un code adequat.

Fred.
0
Rejoignez-nous