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 "<BR>";
echo "<table border=1><tr align=center bgcolor=#AABBFF>";
echo "<th>TECH ID</th>";
echo "<th>TITRE</th>";
echo "<th>TYPE</th>";
echo "<th>DE</th>";
echo "<th>VERS</th>";
echo "<th>PRIORITY</th>";
echo "<th>PROGRESS</th></tr>";
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 "<tr bgcolor=#CCCCCC align=center>";
$color=1;
}
else
{
echo "<tr bgcolor=#FFFFFF align=center>";
$color=0;
}
echo "<td width=10%>";
echo "$TECHID ";
echo "</td>";
echo "<td width=67%>";
echo utf8_encode($TITRE);
echo "</td>";
echo "<td width=10%>";
echo "$TYPE ";
echo "</td>";
echo "<td width=10%>";
echo "$DE ";
echo "</td>";
echo "<td width=10%>";
echo "$VERS ";
echo "</td>";
echo "<td width=10%>";
echo "$PRIORITY ";
echo "</td>";
echo "<td width=10%>";
if (empty($PROGRESS)) echo "QUEUED";
else echo "$PROGRESS ";
echo "</td></tr>";
$nombre=$nombre+1;
}
echo "</table><BR>";
echo "TACHES: ";
echo "$nombre";
odbc_close($conn);
?>
Merci par avance pour les reponses.
Fred.