Post des Paramétres par Ajax
bhcien
Messages postés
9
Statut
Membre
-
kij_82 Messages postés 4260 Statut Contributeur -
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
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:
- Post des Paramétres par Ajax
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Brouillon post instagram - Guide
- Le bon coin mon compte parametres - Guide
- Post it windows - Télécharger - Agendas & Calendriers
1 réponse
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 :
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 :
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.
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.