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

JavaScript Discussion :

GET, espaces, accent...


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Par défaut GET, espaces, accent...
    Salut à tous,

    J'ai besoin de passer un formulaire en GET et récupérer les valeurs en Javascript (pas possibilité d'utiliser du PHP ou ASP). Le problème se pose pour les caractères accentués (quoiqu'il me suffirait de faire une fonction remplacant les "%E8" par des "è", etc) et – surtout – pour les espaces (étant donné qu'ils sont remplacés par des simples "+", je ne peux pas être sûr à tous les coups qu'il s'agit d'espaces).

    Voilà la fonction qui me permet de récupérer mes valeurs de champ :

    function recuperer_formulaire() {
    var chaine_params = location.search.substring(1); // on enlève le "?" du début
    var params = chaine_params.split("&"); // on obtient un tableau de champ=valeur
    var formulaire = new Array(); // le tableau que retournera la fonction
    alert("test");
    // boucle sur tous les paramètres (login et passe dans l'exemple)
    for (i in params) {
    // on découpe chaque paramètre en champ et valeur (séparés par "=")
    var elements_param = params[i].split("=");
    formulaire[elements_param[0]] = elements_param[1];
    }

    return formulaire;
    }
    Merci !

  2. #2
    Membre éclairé Avatar de gibet_b
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    292
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 292
    Par défaut
    Bon ben j'ai trouvé une fonction sur le net, que j'ai bidouillé un peu :
    function decoder(param)
    {
    var HEXCHARS = "0123456789ABCDEFabcdef";
    var encoded = param;
    var plaintext = "";
    var i = 0;
    while (i < encoded.length) {
    var ch = encoded.charAt(i);
    if (ch == "+") {
    plaintext += " ";
    i++;
    } else if (ch == "%") {
    if (i < (encoded.length-2)
    && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
    && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
    plaintext += unescape( encoded.substr(i,3) );
    i += 3;
    } else {
    alert( 'Bad escape combination near ...' + encoded.substr(i) );
    plaintext += "%[ERROR]";
    i++;
    }
    } else {
    plaintext += ch;
    i++;
    }
    }
    return plaintext;
    };

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

Discussions similaires

  1. commande get avec accent
    Par gillessoixantequator dans le forum Langage
    Réponses: 1
    Dernier message: 19/11/2011, 19h23
  2. Modif auto structure (accent, espace) / routine
    Par LostIN dans le forum Access
    Réponses: 16
    Dernier message: 04/07/2006, 10h40
  3. [RegEx] Expression rationnelle avec accents, espace et apostrophe.
    Par psychoBob dans le forum Langage
    Réponses: 12
    Dernier message: 24/04/2006, 15h21
  4. Problème d'espace dans les varibles passées par GET !
    Par boukay dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/03/2006, 14h36
  5. [GET] espace
    Par raj dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/10/2005, 15h43

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