Voiçi plus de précision
Bonjour à tous,
Voilà je travail actuellement sur un site web ou s'exécute du code php et du Javascript je désire également éditer des fichiers pdf grace à la librairie fpdf cela fonctionne plutot bien
la mon soucis est que pour éditer le pdf désiré je doit transmettre les valeurs avec l'aide de variable de sessions qui sont inséré correctement dans ma requete sql mais ces variables sont désespérement vide
sous Internet Explorer 7 alors que tester avec Mozilla Firefox tout s'exécute normalement (dommage que la majorité des personne utilise IE)
Quelqu'un aurait t'il une solution à ce problème épineux de variable qui se "vide en cours de route" ???
J'ai déjà biensûr essayer diverse solution comme vider le cache du navigateur, enregistrer le pdf sur le disque (résultat page blanche sous IE et Firefox) et diminué au maximun la sécurité d'IE toutes ces tentative se soldant par un échec
Voici le code pour que vous y voyez plus clair :
Code du bouton imprimer (HTML) :
<a href='#' onclick="window.open('competence.pdf.parpersonne.php');return false;">
<input id=competence-pdf-submit type=submit value='Imprimer l évaluation' onClick='imprimeval();'>
Fonction imprimeval() (Fonction JavaScript) :
// IMPRESSION DE L' ÉVALUATION
function imprimeval(){
var num_ressources =$F('competence-listepersonnel-select');
alert (num_ressources);
var num_evaluation = $F('competence-listeevaluation-select');
alert (num_evaluation);
var evaluateur = $F('evaluateur');
alert (evaluateur);
var myAjax = new Ajax.Request(
'competence.variablesimpressions.php',
{
method: 'post',
// tramission des valeurs numériques désiré à la page competence.variablesimpressions.php
parameters: 'mode=imprimeval&num_ressources='+num_ressources+'&num_evaluation='+num_evaluation+'&evaluateur='+evaluateur,
// permet juste d'afficher un message
onComplete : gestion_retour
}
);
}
Code intégral de la page competence.variablesimpressions.php qui créé les variables de sessions (PHP)
<?php
session_start() ;
$_SESSION['num_ressources']=$_POST['num_ressources'];
$_SESSION['num_evaluation']=$_POST['num_evaluation'];
$_SESSION['evaluateur']=$_POST['evaluateur'];
?>
Enfin ouverture de la page competence.pdf.parpersonne.php (code php intégral)
<?php
session_start();
require('pdf.entetepied.php');
require("class.mysql.php");
require("fonction.php");
//Instanciation de la classe dérivée
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->titre("Liste des Compétences");
$pdf->SetFont('Times','',12);
$db = new mysql();
$nom_prenom=$db->requete_element ("SELECT CONCAT(nom,' ',prenom) ".
"FROM competence_evaluation, ressources ".
"WHERE id_ressources = num_ressources ".
"AND id_ressources = ".$_SESSION['num_ressources']." ");
/*16*/
$info_eval=$db->requete_element ("SELECT CONCAT('par ', nom,' ',prenom) ".
"FROM competence_evaluation, ressources ".
"WHERE evaluateur = 18 ".
// ".$_SESSION['evaluateur']."*/
"AND evaluateur = id_ressources ".
"AND id_evaluation = 2 ");
// ".$_SESSION['num_evaluation']."
$date=$db->requete_element ("SELECT date_evaluation ".
"FROM competence_evaluation, ressources ".
"WHERE evaluateur = 18 ".
//".$_SESSION['evaluateur']."*/
"AND evaluateur = id_ressources ".
"AND id_evaluation = 2 ");
//*/
$date2= formater_donnee(jourENtoFR($date));
$info_eval2= formater_donnee($info_eval);
$nom_prenom2= formater_donnee($nom_prenom);
$pdf->Write(45,"Evaluation de $nom_prenom2 le $date2 $info_eval2 ");
$pdf->SetY(50);
$header=array('Catégorie','Compétence','Notation');
$data=$db->requete_tableau("SELECT libelle_categorie, libelle_competence, num_code ".
"FROM competence_categorie, competence, competence_note, competence_evaluation, ressources ".
"WHERE num_evaluation = 2 ".
"AND num_evaluation = id_evaluation ".
"AND num_competence = id_competence ".
"AND num_ressources = id_ressources ".
"AND num_categorie = id_categorie ".
"AND num_ressources = 16 ".
"ORDER BY libelle_categorie, libelle_competence");
Tableau($pdf,$header,$data);
//".$_SESSION['num_evaluation']."
//".$_SESSION['num_ressources']."
$pdf->Output();
//Tableau amélioré
function Tableau($pdf,$header,$data)
{
//Largeurs des colonnes
$w=array(50,50,25);
//En-tête
for($i=0;$i<count($header);$i++)
$pdf->Cell($w[$i],7,$header[$i],1,0,'C');
$pdf->Ln();
//Données
$categorie="";
$catgorie_identique="";
foreach($data as $row)
{
if($categorie_identique==($row[0])){
$T ="";
$categorie="";
}
else{
$T = "T";
$categorie=formater_donnee(ucfirst($row[0]));
$categorie_identique = $row[0];
}
$pdf->Cell($w[0],5,$categorie,'L'.$T,0,'C');
$pdf->Cell($w[1],5,formater_donnee(ucfirst($row[1])),$T,0,'C');
$pdf->Cell($w[2],5,$row[2],'R'.$T,0,'C');
$pdf->Ln();
}
//Trait de terminaison
$pdf->Cell(array_sum($w),0,'','T');
// unset($_SESSION['evaluateur']);
// unset($_SESSION['num_evaluation']);
// unset($_SESSION['num_ressources']);
}
?>