Salut,
Ma page consiste a creer une liste (combobox) et a chaque fois qu'on selectionne une option de cette liste une image doit apparaitre qui donne des statisqtiques. Cette image est un camembert. La creation du camembert fonctionne correctement avec mes données, pour la liste aussi c'est la meme chose, mais quand j'execute les deux scripts en meme temps je ne vois qu'un seul s'executer. Si je commente l'affichage du camembert la liste apparait et si je decommente le camembert il s'affiche et la liste disparait!
Il me semble que l'affichage de l'image est superposé avec ma liste de facon lors de l'affichage l'image masque la liste. J'ai cherché beaucoups dans les tutoriels comment je peux changer la localisation de mon image mais la je trouve rien. voila mon code:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?
function camembert($arr)
{	
   $size=3;                  /* taille de la police, largeur du caractère */
   $ifw=imagefontwidth($size);							
 
   $w=500;                   /* largeur de l'image */
   $h=250;                   /* hauteur de l'image */
   $a=120;                   /* grand axe du camembert */
   $b=$a/2;                  /* 60 : petit axe du camembert */
   $d=$a/2;                  /* 60 : "épaisseur" du camembert */
   $cx=$w/2-1;               /* abscisse du "centre" du camembert */
   $cy=($h-$d)/2;            /* 95 : ordonnée du "centre" du camembert */
 
   $A=138;                   /* grand axe de l'ellipse "englobante" */
   $B=102;                   /* petit axe de l'ellipse "englobante" */
   $oy=-$d/2;                /* -30 : du "centre" du camembert à celui de l'ellipse "englobante"*/
   $img=imagecreate($w,$h);  
   $bgcolor=imagecolorallocate($img,0xCD,0xCD,0xCD);	
   imagecolortransparent($img,$bgcolor); 
   $black=imagecolorallocate($img,0,0,0);
                             /* calcule la somme des données */
   for ($i=$sum=0,$n=count($arr);$i<$n;$i++) $sum+=$arr[$i][0];	
 
   /* fin des préliminaires : on peut vraiment commencer! */
   for ($i=$v[0]=0,$x[0]=$cx+$a,$y[0]=$cy,$doit=true;$i<$n;$i++) {														
      for ($j=0,$k=16;$j<3;$j++,$k-=8) $t[$j]=($arr[$i][1]>>$k) & 0xFF;
                             /* détermine les "vraies" couleurs */
      $color[$i]=imagecolorallocate($img,$t[0],$t[1],$t[2]);
                             /* calcule l'angle des différents "secteurs" */
      $v[$i+1]=$v[$i]+round($arr[$i][0]*360/$sum);	
 
      if ($doit) {           /* détermine les couleurs "ombrées" */
         $shade[$i]=imagecolorallocate($img,max(0,$t[0]-50),max(0,$t[1]-50),max(0,$t[2]-50)); 
 
         if ($v[$i+1]<180) { /* calcule les coordonnées des différents parallélogrammes */
            $x[$i+1]=$cx+$a*cos($v[$i+1]*M_PI/180);		
            $y[$i+1]=$cy+$b*sin($v[$i+1]*M_PI/180);	
         }										
         else {
            $m=$i+1;
            $x[$m]=$cx-$a;   /* c'est comme si on remplaçait $v[$i+1] par 180° */
            $y[$m]=$cy;	
            $doit=false;     /* indique qu'il est inutile de continuer! */
         }
      }
   }
 
   /* dessine la "base" du camembert */
   for ($i=0;$i<$m;$i++) imagefilledarc($img,$cx,$cy+$d,2*$a,2*$b,$v[$i],$v[$i+1],$shade[$i],IMG_ARC_PIE);
 
   /* dessine la partie "verticale" du camembert */														
   for ($i=0;$i<$m;$i++) {						
      $area=array($x[$i],$y[$i]+$d,$x[$i],$y[$i],$x[$i+1],$y[$i+1],$x[$i+1],$y[$i+1]+$d);
      imagefilledpolygon($img,$area,4,$shade[$i]);			
   }
 
   /* dessine le dessus du camembert */
   for ($i=0;$i<$n;$i++) imagefilledarc($img,$cx,$cy,2*$a,2*$b,$v[$i],$v[$i+1],$color[$i],IMG_ARC_PIE);
   /*imageellipse($img,$cx,$cy-$oy,2*$A,2*$B,$black);	// dessine l'ellipse "englobante" */
 
   /* dessine les "flêches" et met en place le texte */
   for ($i=0,$AA=$A*$A,$BB=$B*$B;$i<$n;$i++) if ($arr[$i][0]) {
      $phi=($v[$i+1]+$v[$i])/2;       
                             /* intersection des "flêches" avec l'ellipse "englobante" */
      $px=$a*3*cos($phi*M_PI/180)/4;		
      $py=$b*3*sin($phi*M_PI/180)/4;		
                             /* équation du 2ème degré avec 2 racines réelles et distinctes */	
      $U=$AA*$py*$py+$BB*$px*$px;         
      $V=$AA*$oy*$px*$py;						
      $W=$AA*$px*$px*($oy*$oy-$BB);	
                             /* calcule le pourcentage à afficher */
      $value=number_format(100*$arr[$i][0]/$sum,2,",","")."%";
                             /* écrit le texte à droite */	
      if ($phi<90 || $phi>270) {          
         $root=(-$V+sqrt($V*$V-$U*$W))/$U;
         imageline($img,$px+$cx,$py+$cy,$qx=$root+$cx,$qy=$root*$py/$px+$cy,$black);
         imageline($img,$qx,$qy,$qx+10,$qy,$black);		
 
         imagestring($img,$size,$qx+14,$qy-12,$arr[$i][2],$black);
         imagestring($img,$size,$qx+14,$qy-2,$value,$black);
      }
      else {                 /* écrit le texte à gauche */
         $root=(-$V-sqrt($V*$V-$U*$W))/$U;
         imageline($img,$px+$cx,$py+$cy,$qx=$root+$cx,$qy=$root*$py/$px+$cy,$black);
         imageline($img,$qx,$qy,$qx-10,$qy,$black);		
 
         imagestring($img,$size,$qx-12-$ifw*strlen($arr[$i][2]),$qy-12,$arr[$i][2],$black);
         imagestring($img,$size,$qx-12-$ifw*strlen($value),$qy-2,$value,$black);
      }
   }
   header("Content-type: image/png");
   imagepng($img);
   imagedestroy($img);
}
      function listbox ( $name , $array_value = array() , $array_selected , $multiple = 0 , $size = 1 )
    {
        $select = '<select' . ( ( $multiple == 1 ) ? ' multiple name="' . $name . '[]"' : ' name="' . $name . '"' ) . 
' size="' . $size . '">' . "n" ;
 
            foreach ( $array_value as $key => $value )
            {
                $select .= '<option value="' . $key . '"' .
                ( ( $multiple == 1 ) ? ( in_array ( $key , $array_selected ) ? ' selected="selected"' : '' ) : 
( $key == $array_selected ? ' selected="selected"' : '' ) ) .
                '>' . $value . '</option>' . "n" ;
            }
 
        $select .= '</select>' ;
 
        return $select ;
    }
 
if(isset($_POST['ET']))
{
//camembert($ET_data[$_POST['ET']]); 
}
                         /* enjoy! */
?>
<form action='' method='post'>
<?php
echo listbox ( 'ET' , $tableau , ( isset ( $_POST['ET'] ) ? $_POST['ET'] : 4 ) ) ;
?> 
<input type='submit' value='Afficher Camembert'/>  
</form>
La fonction camembert prend un tableau comme entrée et l'affiche sous forme d'image. La fonction listbox permet de creer la liste a partir d'un tableau. Je ne suis pas sur a propos de l'identification du probleme que j'ai proposée mais elle ma parue logique puisque chaque script s'execute correctement chacun a part.
Merci d'avance pour l'aide ^^'

Edit:
L'erreur affichée lors de l'affichage du camembert avec la liste est la suivante:
Warning: Cannot modify header information - headers already sent by (output started at e:\program files\easyphp1-8\www\nouveau dossier\new 16.php:143) in e:\program files\easyphp1-8\www\nouveau dossier\new 16.php on line 92
Et je voulais dire que si je desactive l'affichage du camembert dans la boucle if et j'affiche tout court le tableau demandé par valeurs dans la fonction affichage du camembert il s'affiche correctement avec la liste.