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

Langage PHP Discussion :

Retour a la ligne sur le résultat d'une fonction


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    infographiste
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Retour a la ligne sur le résultat d'une fonction
    Bonjour à tous,

    J'utilise une fonction PHP qui récupère en base de données une phrase dans la langue de l'utilisateur, pour un site multilingues.
    Le problème rencontré est que le résultat de cette fonction génère un retour à la ligne dans le code source de la page. Ainsi à l'affichage dans un input submit par exemple, il y a un saut de ligne avant le texte.

    Le problème ne se produit pas si j'enregistre dans la code PHP de la page le résultat de la fonction dans une variable, avant d'afficher le contenu de la variable

    Autrement dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php $texte=lang('PHRASE'); ?>
    <input type="submit" value="<?php echo $texte; ?>">
    L'affiche est OK, sans saut de ligne avant le texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="<?php echo lang('PHRASE'); ?>">
    L'affichage dans le bouton comporte un saut de ligne

    Avez-vous une idée sur la résolution de ce problème ?

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Bah soit tu corriges le bug dans la fonction lang, soit tu fais un ltrim:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" value="<?php echo ltrim(lang('PHRASE')); ?>">
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    infographiste
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Certes cela aurait pu être une solution, sauf qu'elle n'a pas d'effet dans le cas présent. A noter qu'en enregistrant le return de la fonction dans une variable sans aucun traitement et en l'affichant ensuite, il n'y a aucun retour chariant précédent le résultat.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Gné ?
    On peut voir le code de ta fonction ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    infographiste
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    function lang($phrase) {
      $request_lang=mysql_query("SELECT $lang FROM lang WHERE texte='$phrase'");
      $res_lang=mysql_fetch_assoc($request_lang);
      return $res_lang[$lang];
    }
    ?>

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    A noter qu'en enregistrant le return de la fonction dans une variable sans aucun traitement et en l'affichant ensuite, il n'y a aucun retour chariant précédent le résultat.
    Tu nous charries là ?


    Plus sérieusement, comment le vois-tu qu'il n'y a aucun retour chariot ?
    Si c'est juste en regardant la page, tu ne le vois pas nécessairement, il faut regarder le code source (CTRL+U sur Firefox par exemple) pour en être sûr.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    infographiste
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Oui bien sûr, je confirme qu'en enregistrant le résultat de la fonction dans une variable AVANT d'afficher la variable, là je n'ai aucun retour à la ligne (à l'affichage comme dans le code source), ce qui est d'autant plus étonnant et me fait ne pas avoir d'explication sur la cause.

  8. #8
    Inactif
    Homme Profil pro
    Sans emploi
    Inscrit en
    Septembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Septembre 2014
    Messages : 35
    Points : 52
    Points
    52
    Par défaut
    Une erreur dans le input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    if(!isset($_GET['envoyer'])) :
    $texte=lang('PHRASE'); 
     
    endif;
    ?>
    <input type="submit" name="envoyer" value="<?php echo $texte; ?>">

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    infographiste
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : infographiste
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    @livingxworld

    Non justement, je veux éviter d'enregistrer le résultat en variable et comprendre pourquoi ce saut de ligne.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par bastounseb Voir le message
    Voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    function lang($phrase) {
      $request_lang=mysql_query("SELECT $lang FROM lang WHERE texte='$phrase'");
      $res_lang=mysql_fetch_assoc($request_lang);
      return $res_lang[$lang];
    }
    ?>
    La variable $lang n'est pas définie dans la fonction lang(). Il manque quelque chose pour que la fonction retourne autre chose qu'une erreur.

Discussions similaires

  1. Réponses: 11
    Dernier message: 30/01/2014, 12h59
  2. Calcul ligne par ligne sur le résultat d'une requête
    Par CanardJM dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2008, 13h06
  3. retour a la ligne sur Access
    Par frfrancis dans le forum Access
    Réponses: 5
    Dernier message: 06/03/2007, 16h52
  4. Réponses: 3
    Dernier message: 11/01/2006, 18h35
  5. [Firebird] DELETE sur le résultat d'une requete d'un IBQUERY
    Par shashark dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/06/2005, 18h17

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