Bonjour @tous.
Alors voila, j'ai un problème d'intégration d'un editeur HTML sur certaines pages...
En effet, la structure de mes pages est la suivante :
Index.php --> redirige (via include) vers artistes.php lorsque $_GET['page']=="artistes" et éxécute <body onload="initEditor();">
Index.php est la seule page qui contient une en-tete HTML :
artistes.php --> redirige vers newArtistes.php lorsque $_GET['task'] =="new"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
artistes.php --> redirige vers editArtistes.php lorsque $_GET['task'] =="edit"
editArtistes.php --> est une page qui contient une liste box qui permet de choisir un artiste à éditer. Lorsque l'utilisateur à choisit son artiste, editArtistes.php redirige vers AJAX_edit_artiste_form.php de la manière suivante :
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 <script language="javascript" type="text/javascript"> // fonctions AJAX pour l'affichage dartistes // Renvoie le texte de l'objet ActiveXObject le plus rcent depuis une liste var pickRecentProgID = function (idList){ var bFound = false; for(var i=0; i < idList.length && !bFound; i++){ try{ var oDoc = new ActiveXObject(idList[i]); o2Store = idList[i]; bFound = true; }catch (objException){ }; }; if (!bFound) throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez mettre jour votre navigateur"); idList = null; return o2Store; } // Retourne un nouvel objet XmlHttpRequest var GetXmlHttpRequest_AXO=null; var GetXmlHttpRequest=function () { if (window.XMLHttpRequest) { return new XMLHttpRequest() } else if (window.ActiveXObject) { if (!GetXmlHttpRequest_AXO) { GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]); } return new ActiveXObject(GetXmlHttpRequest_AXO) } return false; } getXhr=GetXmlHttpRequest; function go(){ var xhr = getXhr(); // On d fini ce qu'on va faire quand on aura la rponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout re u et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste window.document.getElementById('bloc').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","./AJAX_edit_artiste_form.php",true); // ne pas oublier a pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l'artiste selectionn id_edit_art = window.document.getElementById('select_type_edit'); Id_edit_art = id_edit_art.value; xhr.send("id_edit_art="+Id_edit_art); } elem = window.document.getElementById('select_type_edit'); elem.onclick = function() { go(); }; </script>
Mon éditeur s'intègre de la facon suivante sur la page newArtistes.php :
Ce bout de code initialise un nouvel editeur dans la textearea nommée "bioart" qui se trouve sur la page newArtistes.php.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <script type="text/javascript"> _editor_url = "./editor"; _editor_lang = "fr"; </script> <script type="text/javascript" src="./editor/htmlarea.js"></script> <script type="text/javascript"> var editor = null; function initEditor() { editor = new HTMLArea("bio_art"); </script>
Seulement voila, sur ma page AJAX_edit_artiste_form.php , j'ai aussi un textarea nommée "newbio_art" que j'aimerais rendre editable grace à mon editeur HTML, mais cela ne fonctionne pas lorsque j'insère les balises <script></script> comme je le fait sur newArtistes.php. J'ai essayé de placer ceci un peu partout (AJAX_edit_artiste_form.php , index.php, editArtistes.php, artistes.php) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <script type="text/javascript"> _editor_url = "./editor"; _editor_lang = "fr"; </script> <script type="text/javascript" src="./editor/htmlarea.js"></script> <script type="text/javascript"> var editor = null; function initEditor() { editor = new HTMLArea("newbio_art"); </script>
A titre indicatif, voila ce que contient AJAX_edit_artiste_form.php :
Ma question est : Pourquoi le code de mes balises <script> ne s'éxécute pas dans la page AJAX_edit_artiste_form.php, ni ailleur d'ailleurs...
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 <?php include_once ("../elements/php/config.php"); if(isset($_POST['editor']) && $_POST['editor'] != "") echo $_POST['editor']; if(isset($_POST['edit_art_id']) && $_POST['edit_art_id'] != "") { $getInfo_Art = mkquery("SELECT a.id_art, a.nom_art, a.prenom_art, a.dir, a.bio, t.id_type FROM artiste AS a, art_type AS t WHERE a.id_art = ".$_POST['edit_art_id']." AND a.id_art = t.id_art LIMIT 1"); while ($Info_Art = mysql_fetch_array($getInfo_Art)){ $id_art = $Info_Art['id_art']; $nom = utf8_encode($Info_Art['nom_art']); $prenom = utf8_encode($Info_Art['prenom_art']); $dir = $Info_Art['dir']; $bio = utf8_encode($Info_Art['bio']); $type = $Info_Art['id_type']; } } ?> <input type="hidden" name="id_art_edit" value="<?php echo $id_art; ?>" /> <table cellpadding="0" cellspacing="10" border="0" width="100%"> <tr> <td width="55%" valign="top"> <textarea name="newbio_art" id="newbio_art" cols="48" rows="15" /><?php if(isset($bio) && $bio!="") echo $bio; ?></textarea> </td> </tr> </table>
Je vous remercie d'avance pour vos réponses !
Partager