Pb interprétation balises <script>
Posté : 18 déc. 2006, 11:29
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"
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 :
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.
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) :
A titre indicatif, voila ce que contient AJAX_edit_artiste_form.php :
Je vous remercie d'avance pour vos réponses !
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 : Tout sélectionner
<!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 : Tout sélectionner
<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 : Tout sélectionner
<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 : Tout sélectionner
<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 :
<?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 !