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 :

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 newArtistes.php lorsque $_GET['task'] =="new"

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 :

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>
Ce bout de code initialise un nouvel editeur dans la textearea nommée "bioart" qui se trouve sur la page newArtistes.php.

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 :

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>
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...

Je vous remercie d'avance pour vos réponses !