Post des Paramétres par Ajax

bhcien Messages postés 9 Statut Membre -  
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour,

Je dois poster des paramètres d'une formulaire à travers une fonction Ajax.
Parmi ces paramètres, il y a une variable qui présente le contenu d'un champs de saisi FCKeditor.
Lors je clique sur le boutton "Save" , je ferai appel à la fonction saveRecPros

function saveRecPros () {

var req = null;
var oEditor = FCKeditorAPI.GetInstance('FCKeditor2') ;



if(window.XMLHttpRequest)
req = new XMLHttpRequest();
else if (window.ActiveXObject)
req = new ActiveXObject("Microsoft.XMLHTTP");

req.onreadystatechange = function()
{
if(req.readyState == 4)

{
if(req.status == 200)
{

xmlStr=req.responseText

}
else
{

req.status + " " + req.statusText;

}
}
}

Contenu_editor = oEditor.EditorDocument.body.innerHTML
Agencelistes_selPro=document.getElementById('Agencelistes_selPro').value

req.open("POST", "PutParamsProspect.aspx", true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(
Contenu_editor='+Contenu_editor+
'&Agencelistes_selPro='+Agencelistes_selPro
);
}

Mon problème est que lorsque la variable Contenu_editor présente un grand texte (ce texte présente du code html fourni par FCKeditor), l'application se bloque.

Comment je dois remédier ceci ?
Merci de votre coopération
A voir également:

1 réponse

kij_82 Messages postés 4260 Statut Contributeur 857
 
Bonjour, j'ai fais le même genre de chose il y a peu et voici comment j'ai procédé pour récupérer et transformer ton contenu :
var version_value = escape(trim(getEditor().GetHTML(false)));


getEditor() récupère l'instance de mon éditeur, qui est déclaré en variable globale. Donc sur ton objet editeur FCK, il suffit de prendre la valeur du texte via : GetHTML(false) puis de protéger cette valeur via la fonction javascript 'escape'

La fonction 'trim' est là juste pour supprimer les éventuels espaces avant / après dans le texte de manière à ne pas avoir plein de blanc en début / fin de texte.
Voici le corps de la fonction trim :
function trim(string){
	return string.replace(/(^\s*)|(\s*$)/g,'');
} 


Pour le reste il suffit de passer cette valeur de texte reformatée comme tu l'as déjà dans ton 'sendData'.

En espérant que cela réponde à tes attentes.
0