IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] méthode post et esperluette !


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut [AJAX] méthode post et esperluette !
    Bonjour à tous,

    Alors voilà, je vous explique mon petit souci...

    J'ai une fonction javascript qui est censée remplacer mes esperluettes (&) par un pseudoBBcode ([esperluette]) afin que je puisse faire passer des chaînes de caractères contenant ces fameuses esperluettes (j'aime bien ce mot ) dans la méthode 'POST' de ma petite fonction mirexpress qui gère les inclusions ajax.

    Je me suis rendu compte, en fait, en faisant passer des urls php contenant des esperluettes que ben ca ne marchait pas et que ca prenait uniquement du début de ma chaîne jusqu'à l'esperluette... (Ben vi, puisque les esperluettes définissent les arrêts des valeurs des $_POST ^^)

    Bref, je ne me suis pas pendu au plafond pour autant et j'ai utilisé la méthode replace de javascript, pensant qu'elle agirait comme un preg_replace_all de chez mon elephpant préféré... Et là, ô misère, ô traitresse, ô vieillesse ennemie, cette méthode ne marche qu'une fois.

    Toujours peu enclin à monter une corde au plafond, j'ai cherché sur le net si javascript avait un "preg_replace_all" à lui... Et là, j'ai eu à boire à et manger, mais pas ce que je voulais.

    Je me suis donc tourné vers la méthode split de javascript, avec ceci, ca marche très bien pour des esperluettes célibataires mais j'ai toujours le même souci avec des esperluettes collées à d'autres casses.

    Ma question, la voici ^^ :

    Comment puis-je faire pour traîter l'ensemble de mes esperluettes dans une chaîne de caractères ?
    Si quelqu'un connait la réponse, je lui en serai fort gré de la partager avec moi !

    Merci à tous !

    Edith :
    Voici la solution que j'ai trouvé, mais je la trouve un peu barbare...
    (en fait, je réinvente un peu le replace_all ^^ mais il n'existe pas sous javascript ???)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function enleveEsperluette(texte)
    	{
    	var resultat='';
    	var reg = new RegExp("&");
    	var remplace = '[esperluette]';
    	for (var i=0; i<texte.length; i++)
    		{
    		var morceau=texte.charAt(i);
    		resultat += morceau.replace(reg, remplace);
    		}
    	return resultat;
    	}

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 22
    Par défaut
    Hello,

    Et si tu utilisais la méthode encodeURIComponent sur tes arguments à envoyer, ca ne pourrait pas aller ?
    Comme ca, tous les caracteres spéciaux sont remplacés.
    Plus d'infos
    Et du coté du php, un coup de rawurldecode pour revenir à la normal.

    Et pour le replace_all en JS, désolé, je ne sais pas. Je n'ai jamais rencontré une fonction du genre en JS.

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    +1
    Et heureusement qu'on n'est pas obligé de s'amuser à remplacer les caractères à chaque fois sinon ce serait un sacré b.....

    ERE

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Par défaut
    Merci les gars !

    Je vais regarder de ce pas ce que donne ces fonctions ! En fait comme je n'ai de problèmes qu'avec l'esperluette et qu'avec cette petite fonction, tout est rentré dans l'ordre, je crois que je vais rester comme çà...

    Déjà que j'encode/décode avec utf8, point de vue des caractères spéciaux de sémantique, tout va bien

    Ceci dit, je vous remercie de ces réponses, ca fait toujours plaisir de connaître de nouvelles méthodes !

    Et c'est encore une victoire pour Canard WC ! Euh pour Ajax, pardon

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Pourquoi conserver un code inadapté, alors que tu disposes d'une solution qui t'affranchirait de tout futur souci du même style que tu rencontrerais ?

    J'ai du mal à suivre... A ce rythme les victoires vont vite devenir des défaites.

    ERE

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 5
    Par défaut
    Salut à tous,
    Je viens d'être confronté au même soucis (avec 2 ans de retard )... J'ai moi aussi opté pour la solution de remplacer les & par des [esperluette]. En réponse à Mr Belette, voici une solution peut-être un peu moins "barbare" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function virerEsperluette(txt)
    {
    var texte = txt.split("&").join("[esperluette]");
    return texte;
    }
    Bonne continuation!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] liste déroulante onchange méthode post
    Par mrsoyer dans le forum AJAX
    Réponses: 1
    Dernier message: 05/04/2010, 18h28
  2. Réponses: 26
    Dernier message: 09/07/2009, 09h55
  3. [AJAX] Comment envoyer un fichier par la méthode post à l'aide d'ajax?
    Par othmane126 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2008, 12h00
  4. [AJAX]problème d'envoie de données méthode POST
    Par xave dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/07/2006, 16h35
  5. [AJAX] Retrouver xml envoyé du client au serveur (via méthode POST)
    Par leszek dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/05/2006, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo