[javascript] problème xml_http_request
Bonjour à tous,
Voilà mon soucis,
je fais une boucle qui appelle, disons 3 fois, une fonction javascript qui lance par requete xml_http_request un script perl.
Le script perl fait un retourne une expression javascript qui est éxécuté par la fonction eval.
Voici le code ci dessous:
Les deux fonctions javascript:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
function DeleteErrorReport(id)
{
var TabErrorReport=new Array();
//Récupération du toutes les checkbox cliquée
for(i=0;i<document.FormError.CheckError.length;i++)
{
if(document.FormError.CheckError[i].checked)
{
TabErrorReport.push(document.FormError.CheckError[i].value);
}
}
// Création du popup
var PopColor='#9FC1FF';
var TextColor='#ffffff';
oPopup = window.createPopup();
oPopBody = oPopup.document.body;
// Mise en forme
oPopBody.style.backgroundColor = PopColor;
oPopBody.style.border = "solid darkblue 1px";
oPopBody.style.margin = "0px";
oPopBody.style.color = TextColor;
oPopBody.style.fontSize = "12px";
oPopBody.style.textAlign = "center";
oPopBody.innerHTML = "Deleting error report";
// Affichage du popup
oPopup.show(50,10,600,100,event.srcElement);
//On lance la suppression de tous les errors report à supprimer
for (var i=0;i<TabErrorReport.length;i++)
{
DeleteErrorReportXML(id,TabErrorReport[i]);
}
}
function DeleteErrorReportXML(id,PathErrorReport)
{
if (window.ActiveXObject){xhr_object=new ActiveXObject("Microsoft.XMLHTTP");}
else{alert("your browser doesn't allow ActiveX Object");return;}
var data="CGISESSID="+id+"&PATH="+PathErrorReport+"";
var filename="./Perl_delete_error_report_xml.pl";
xhr_object.open("POST",filename,true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4)
{
var xmlres = xhr_object.responseText;
switch(xmlres)
{
case 'false':{alert('Error while deleting !!');};break;
default:{eval(xmlres);};break;
}
}
}
xhr_object.send(data);
} |
Le script perl:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#!c:\perl\bin\perl.exe
use CGI;
use TX2::Web::Session;
use TX2::pass;
$cgi=new CGI;
#Variables de sessions
$session=&TX2::Web::Session::Verify($cgi->param("CGISESSID"));
$id=$session->id();
$Compte=$session->param('Compte');
####################
#Récupération des variables QueryString et variables de sessions
####################
my $Path=$cgi->param('PATH');
$Path=~s/\\\\/\\/g;
if(@{$Compte}[0] eq &TX2::pass::admin())
{
opendir(REP,$Path) or die "Erreur ouverture $Path\n$!\n";
my @files=grep{$_ ne '.' && $_ ne '..'} readdir REP;
closedir(REP);
print "content-type:text/html\n\n";
print "oPopBody.innerHTML= \"suppression $Path\";";
sleep(3);
}
else
{
print "content-type:text/html\n\n";
print "Access denied !!\n";
} |
Mon problème, c'est que dans la popup Opopup, je ne vois afficher que le texte de suppression du dernier élément.
Comment règler ce problème ?? Qu'est ce que je fais de mal ???
Merci pour vos réponses !!!