Hello !
J'ai un petit problème dans un script avec du xmlhttp.
Le principe:
Je génère des documents Excel sur un clic. Je place une image et un lien dans des paragraphes ayant des ID différents et aléatoires.
Je clic sur le lien, j'envoie le tout à une fonction PHP qui crée le doc Excel et retourne le lien de téléchargement du fichier.
Le code HTML
Le code JavaScript
La réponse de ma page excel.php
Le problème est le suivant: au premier clic, tout va bien, j'ai l'icône d'attente, puis mon message de téléchargement apparaît.
Quand je clique sur le lien restant, peu importe qu'il soit avant ou après au niveau de l'affichage, les 2 innerHTML de mes paragraphes me mettent le message d'attente.
Incompréhensible.
J'ai regardé avec FireBug, il me semble que ma variable dans la fonction GenererBC garde la première valeur de l'ID du paragraphe contenant le premier lien et permute d'un coup sur la seconde...
En gros, si je clique sur le paragraphe ayant ksxiwwshcwm comme ID, il va rester en mémoire, même après avoir affecter la valeur tmjowbqoiiq à ma variable ParId...
Là, j'avoue que je cale...
Edit: il semble que ce problème se produise uniquement avec FireFox...
Modifié par BruceFeuillette (26 Jun 2007 - 15:37)
J'ai un petit problème dans un script avec du xmlhttp.
Le principe:
Je génère des documents Excel sur un clic. Je place une image et un lien dans des paragraphes ayant des ID différents et aléatoires.
Je clic sur le lien, j'envoie le tout à une fonction PHP qui crée le doc Excel et retourne le lien de téléchargement du fichier.
Le code HTML
<p id="ksxiwwshcwm">
<img src="images/excel_gris.png" width="22" height="22">
<a href="javascript:GenererBC('7', '0', '66', 'ksxiwwshcwm')">Générer votre bon de commande n°1</a>
</p>
<p id="tmjowbqoiiq">
<img src="images/excel_gris.png" width="22" height="22"><a href="javascript:GenererBC('7', '100105', '77', 'tmjowbqoiiq')">Générer votre bon de commande n°2</a>
</p>
Le code JavaScript
function GenererBC(NumCde, NumMarche, CodeFrs, ParId){
var toto=document.getElementById(ParId);
xmlhttp.open("GET", 'excel.php?cde='+NumCde+'&NumMarche='+NumMarche+'&CodeFrs='+CodeFrs,true);
xmlhttp.onreadystatechange = function()
{
toto.innerHTML = '<img src="images/indicator.gif" height="16" width="16" alt="*" />En cours - Merci de patienter...';
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
toto.innerHTML = xmlhttp.responseText;
}
}
xmlhttp.send(null);
}
La réponse de ma page excel.php
<img src="images/excel.png" width="22" height="22"><a href="<? echo $today; ?>.xls" target="_blank"> Télécharger le Bon de Commande</a>
Le problème est le suivant: au premier clic, tout va bien, j'ai l'icône d'attente, puis mon message de téléchargement apparaît.
Quand je clique sur le lien restant, peu importe qu'il soit avant ou après au niveau de l'affichage, les 2 innerHTML de mes paragraphes me mettent le message d'attente.
Incompréhensible.
J'ai regardé avec FireBug, il me semble que ma variable dans la fonction GenererBC garde la première valeur de l'ID du paragraphe contenant le premier lien et permute d'un coup sur la seconde...
En gros, si je clique sur le paragraphe ayant ksxiwwshcwm comme ID, il va rester en mémoire, même après avoir affecter la valeur tmjowbqoiiq à ma variable ParId...
Là, j'avoue que je cale...
Edit: il semble que ce problème se produise uniquement avec FireFox...
Modifié par BruceFeuillette (26 Jun 2007 - 15:37)