Bonjour,
Alors je sais que les popups c'est en Javascript et j'ai longuement hésité à poster ici ... je pense plus que mon problème viens de mon code PHP ...
Donc voila, je vais vous expliquer brievement ce que je dois faire.
Je suis donc en pleine création d'un site d'e-learning. Le projet n'est pas de moi mais de la boite dans laquel je suis en stage.
Pour pouvoir visualiser les cours, on m'a demandé d'ouvrir les cours (qui sont en flash) dans une fenetre popup quand l'utilisateur veut les visualiser. Jusque là facile et ca marchait en plus.
Là où mon problème survient, c'est quand on m'a demandé de faire le tri entre ce que l'utilisateur a déjà vu ou non. J'ai donc modifier la base de données en conséquence et réécrit le code en dynamique avec du PHP pour faire le tri. Le problème est que maintenant, je n'arrive plus à visualiser les cours ... Mes popup ne s'ouvrent plus et je ne trouve pas d'où viens l'erreur. J'ai simplement repris l'ancien code qui était en "dur" et je l'ai modifier pour qu'il soit dynamique.
L'ancien code :
fichier.html
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cours 1 <input type="button" name="btn_compta" value="Effectuer" onClick="window.open('popup.php?lesson=compta','popup','width=950,height=680')" > <br/>
popup.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ($_GET['lesson'] == "compta") { echo "<embed src=\"flash/Comptabilite et gestion financiere.swf\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" Width=950 height=680></embed>"; }
***********************************
nouveau code dynamique
fichier.php qui accede à la base de donnée et me créé le corps d'un tableau dans lequel à chacune des lignes j'ai le nom et le boutton pour acceder au cours. De plus dans le fichier là je rempli une variable de session avec le nom clé du cours et une autre avec son chemin pour pouvoir l'ouvrir par la suite dans la nouvelle fenetre.
fichier.html où j'affiche mes tableaux (cours vu et cours non vu)
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 /******************************************************************************************** Function which cut the varchar into an array *********************************************************************************************/ function decoupe($chaine) { //tableau renvoyé $tableau = array(); //decoupage de la chaine et remplissage du tableau $tableau = explode(',',$chaine); return $tableau; } if(isset($_SESSION['user_id'])) { $user_id=$_SESSION['user_id']; $req1="select cours_id_ok from users where user_id=".$user_id; $req2="select * from cours where langue_id=".$lang_id; $id_ok=""; $body_array_ok=""; $body_array_no=""; $keywords=""; $path=""; unset($_SESSION['cours_ok']); unset($_SESSION['cours_no']); unset($_SESSION['keywords']); unset($_SESSION['path']); $query=mysql_query($req1); if($result= mysql_fetch_array($query)) { $id_ok=$result['cours_id_ok']; } $tab_id_ok=decoupe($id_ok); $exec=mysql_query($req2); while($res= mysql_fetch_array($exec)) { $b=false; for($i=0;$i<count($tab_id_ok);$i++) { if($res['cours_id']==$tab_id_ok[$i]) { $lign = "<tr><td align='right'>".$res['cours_name']."</td><td><input type='button' value='Revoir' onClick='window.open('popup.php?lesson=".$res['keyword_c']."','popup','width=950,height=680')' ></td></tr>"; $body_array_ok .= $lign; $b=true; } } if(!$b) { $lign = "<tr><td align='right'>".$res['cours_name']."</td><td><input type='button' value='Seen' onClick='javascript:OuvrirFenetre('popup.php?lesson=".$res['keyword_c']."','popup','width=950,height=680')' ></td></tr>"; $body_array_no .= $lign; } if($keywords=="") { $keywords=$res['keyword_c']; } else { $keywords=$keywords.','.$res['keyword_c']; } if($path=="") { $path=$res['path_c']; } else { $path=$path.','.$res['path_c']; } } $_SESSION['cours_ok'] = $body_array_ok; $_SESSION['cours_no'] = $body_array_no; $_SESSION['keywords'] = $keywords; $_SESSION['path'] = $path; }
Code HTML : 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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>Cours</title> </head> <body> <table style="font: 10pt Verdana" width="550" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="title" align="center" style="font: 20pt Verdana"> Cours </td> </tr> <? echo $_SESSION['cours_no']; ?> </table> <hr/> <table style="font: 20pt Verdana" width="550" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="title" align="center"> Cours vu </td> </tr> <? echo $_SESSION['cours_ok']; ?> </table> </body> </html>
Et enfin fichier popup.php qui est censé m'afficher le bon cours dans la nouvelle fenetre qui viens de s'ouvrir
Voila je sais le post est un peu long, mais c'étais pour vraiment tout vous montrer. Ca fais 3 jours que je seche là dessus et que je fais des echo un peu partout pour voir si tout marche et je ne vois vraiment d'où ca peut venir
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <body onload="window.focus();"> <?php /******************************************************************************************** Function which cut the varchar into an array *********************************************************************************************/ function decoupe($chaine) { //tableau renvoyé $tableau = array(); //decoupage de la chaine et remplissage du tableau $tableau = explode(',',$chaine); return $tableau; } $keywords = $_SESSION['keywords']; $path = $_SESSION['path']; $array_key = decoupe($keywords); $array_path = decoupe($path); for($i=0;$i<count($array_key);$i++) { if($_GET['lesson'] == $array_key[$i]) { //echo "<embed src='".$array_path[$i]."' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' Width=950 height=680></embed>"; echo "src='".$array_path[$i]."' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' Width=950 height=680"; } } ?> </body> </html>
Merci de vos réponses.
Partager