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

Bibliothèques & Frameworks Discussion :

Espace rajouté [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut Espace rajouté
    Bonjour,

    J'ai un problème lors d'un appel Ajax avec prototype. Mon but est de remplir un champs input avec une valeur. Le problème est qu'un espace est ajouté au début du champs, ce qui perturbe donc l'exécution des requetes suivantes basées sur cette valeur.

    Voici la requete lancée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Request('default_client','dbname='+nom_base+'&action=SetDefaultClient&type_client='+type_client.value+'&debut='+this.value);
    La fonction Request :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function Request(id_element,parametres)
     {
    	var url = './ajax/request.php';	
    	var Requete = new Ajax.Request( 
    		   url, 
    		   {
    			      method: 'get', 
    			      parameters: parametres,
                                  onSuccess: function(transport) {$(id_element).value = transport.responseText;}
    		   }
     
    	);
     
    }

    La portion de PHP qui retourne la valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
          if(isset($_GET['truevalue']) AND $_GET['truevalue']==true)
             $value=$_GET['debut'];
          else
             $value=select_unique("SELECT CT_NUM FROM F_COMPTE WHERE CT_TYPE=? AND upper(CT_INTITULE) LIKE '".strtoupper($_GET['debut'])."%' ORDER BY CT_INTITULE",$dbname,$_GET['type_client']);
     
                $value=trim($value);    
           echo $value;
    A noter que mon trim ci-dessus ne sert à rien. $value ne contient aucun espace, retour chariot ou autre. C'est ensuite qu'il est ajouté, et c'est là que je ne comprends plus...

    Je ne vais pas vous faire un dessin mais le résultat est un champs input ou la valeur vaut : " 654" avec un espace en trop donc. Je précise que dans l'url que j'envoie par la suite à prototype (la requete ajax qui se base sur le résultat ci-dessus), il apparait clairement un "%20" au début du paramètre concerné

    Merci à ceux qui m'aideront
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

  2. #2
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    Le problème est réglé par un trim() (fonction js équivalente au trim PHP)

    Je fais ce trim sur le transport.responseText.

    Mais j'aimerais toujours, si possible que quelqu'un m'explique pourquoi un espace apparait entre la réponse PHP et l'affectation de la réponse ajax dans mon input.
    Sinon ce soir je mettrai le tag résolu.

    Merci
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

  3. #3
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Je pense que ca vient de l'execution du fichier php : tout ce que tu as avant le <? génère des espaces. dans ton rendu HTML...

    Pour en avoir le coeur net, appele directement ta page AJAX (tel que prototype la fait) et regarde la source générée.
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  4. #4
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    Merci de ta réponse.

    En fait, la portion php mise plus haut est un "case break" inclut dans un fichier php pur qui ne sert que pour l'ajax (voir l'url dans la fonction Request).

    Ensuite, l'affichage de toute l'appli est du html généré par php, pas de php dans le html. Donc je ne pense pas que ca soit un problème d'espace avant le <?php

    Surtout que j'ai vérifié, la valeur renvoyée par php ne contient pas d'espace, et un trim du responseText règle le problème. "Quelquechose" génère donc un espace entre le echo $resultat et le id_element.value= transport.ResponseText.

    Après, c'est peut être mon utilisation de l'objet Request qui est foireuse (à noter que j'ai également une fonction Updater qui fonctionne bien). En fait je me sers du Request pour remplir un input, et de l'updater pour générer du code dans un div.

    Merci.
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2011, 00h32
  2. Réponses: 4
    Dernier message: 15/08/2010, 00h01
  3. rajout d'espaces sur colonne
    Par jobar38 dans le forum Excel
    Réponses: 1
    Dernier message: 15/04/2010, 19h52
  4. Rajouter des espace dans les numéros de téléphones
    Par zooffy dans le forum Développement
    Réponses: 10
    Dernier message: 29/09/2008, 15h05

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