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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Mon problème, c'est que dans la popup Opopup, je ne vois afficher que le texte de suppression du dernier élément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"; }
Comment règler ce problème ?? Qu'est ce que je fais de mal ???
Merci pour vos réponses !!!
Partager