[resolu]probleme avec les '&' et les requetes ajax

probleme avec les '&' et les requetes ajax [resolu] - HTML/CSS - Programmation

Marsh Posté le 20-06-2007 à 10:23:57    

Bonjour a tous.
J'ai un probleme concernant une requete ajax que je n'arrive pas a resoudre.
c'est pour cela que je vien soliciter votre aide.
 
j'ai un formulaire basique comprenant une textbox classique et un text area.
le textbox va servir un saisir un nom et le text area du code html.
un fois le formulaire remplis on clique sur le bouton sauvegardé et sa execute une requete ajax qui va poster le formulaire sans recharger la page et ajouter mais deux champ en base de donné.
 
jusque la tout marche bien.Mon seul probleme est que, quant la textbox ou le text area contient le charactere '&', que lont retrouve frequament dans le html, ma requete ajax est faussé.En efait les donné du POST (je fait passé mais donné dans le POST et non le GET) de retouve faussé puisque j' obtien par exemple
 
<citation nom="data du POST">
name=un_nom&code=<p>du%20code%20html%20simple%20&eacute;blabla</p>
</citation>
 
au lieu davoir deux variable dans mon post $_POST['name'] et $_POST['code']
je vais me retouver avec 3 variable:  $_POST['name'] , $_POST['code'] et $_POST['eacute;blabla</p>'] et la valeur du champ ne sera pas mis en base entierement.
 
j'espére avoir été assé clair et que quelqu un aurait une solution a me proposer.
bonne journé a tous


Message édité par leplusapte le 20-06-2007 à 14:02:31
Reply

Marsh Posté le 20-06-2007 à 10:23:57   

Reply

Marsh Posté le 20-06-2007 à 12:19:07    

Hello,
 
Attend voir, je regarde dans ma boule de cristal...Arf! Je ne vois rien.
 
Il me faudrait quelque chose de plus fort, du code par exemple.


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 20-06-2007 à 12:30:16    

De mémoire, en ajax, on peut faire aussi bien du post que du get. Je n'ai pas d'exemple sous les yeux mais c'est l'une des deux solutions à ton probléme.
L'autre solution, c'est de remplacer les caractéres de tes valeurs par les codes URL correspondant.
 
EDIT : virage de la signature.


Message édité par omega2 le 20-06-2007 à 14:54:25
Reply

Marsh Posté le 20-06-2007 à 13:12:56    

AlphaZone -> je ne te demande pas de te servir de ta boule de cristal mais de tes neuronnes ... mon probleme ne vien pas du code ...
mais si tu y tien :
 

Citation :


function insertNewTemplate()
{
 var name = document.getElementById('template_name').value;
 var parent = document.getElementById('template_parent').value;
 var code = document.getElementById('template_code').value;
 var position = templateTree.getLastItemId(parent) + 1;
 
    if(name != "" )
    {
  var url = 'admin.php?plugin=cms&mode=ajax&action=addTemplate';
  var data = 'name='+ name +'&position='+ position +'&type=page&parent='+ parent+'&code='+code;
 
 
        var httpRequest = false;
 
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            httpRequest = new XMLHttpRequest();
            if (httpRequest.overrideMimeType)
            {
                httpRequest.overrideMimeType('text/xml');
                // Voir la note ci-dessous à propos de cette ligne
            }
        }
        else if (window.ActiveXObject)
        { // IE
            try
            {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP" );
            }
            catch (e)
            {
                try
                {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP" );
                }
                catch (e) {}
            }
        }
 
        if (!httpRequest)
        {
            alert('Abandon :( Impossible de créer une instance XMLHTTP');
            return false;
        }
        httpRequest.onreadystatechange = function() { showTree(divTree,''); };
        httpRequest.open('POST', url, true);
         if(data)
         {
 
           httpRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
         }
         else
         {
          data = null;
         }
 
        httpRequest.send(data);
 }
 
}


 
le code marche tres bien seulement quant un '&' se retrouve dans la variable code et donc part dans le post
la valeur de code est coupé.
 
omega2 -> merci pour ta reponse mais que se soit en get ou en post le probleme est le meme et je ne croit quil exist 'un code url' pour le charactere &

Reply

Marsh Posté le 20-06-2007 à 14:02:10    

jai resolu mon probleme grace a la fonction javascript escape() qui me permet de convertir les charactere :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed