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 :

fonction echo et concaténation


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut fonction echo et concaténation
    Bonjour,

    Voilà j'ai un souci avec un petit bout de code php que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
        echo 
     
     
    "<table class='tableadd' width = 85% align='center'>
    <tr>    
        <td width = 25%>Téléphone:<br><input type='text' name='Tel' size='15' value=".$rowInfo[19]." readonly>
        <td width = 25%>Portable:<br><input type='text' name='portable' size='15' value=".$rowInfo[20]." readonly></td>
    	<td width = 25%>Fax:<br> <input type='text' name='Fax' size='15' value=".$rowInfo[21]." readonly></td>
        <td colspan='2' width = 25%>e-Mail:<br> <input type='text' name='eMail' size='45' value=".$rowInfo[22]." readonly></td>
    </tr>
    </table>";
     
    ?>
    Code qui parait être sans problème, il se contente d'afficher une partie d'un formulaire en remplissant les champs avec des élèments tirés d'une BDD, qui sont stockés dans un tableau rowInfo.

    Seulement voilà, il remplit les champs d'une façon curieuse :
    -Si le champ est vide dans la BDD, le champ du formulaire affiche readonly.
    -Si le champ est composé d'un seul élèment, il est correctement affiché.
    -Si il est composé de plusieurs élèments, seul le premier est affiché.
    (par plusieurs élèments, comprendre plusieurs chaines séparées par des espaces, dans mon cas une adresse).

    Je n'arrive pas à expliquer ce comportement pour le moins innatendu, je ne vois rien d'abérrant dans la concaténation des valeurs et des chaines... Il y a surement une erreur énorme que je ne vois pas.

    Merci à ceux et celles qui voudront bien m'aider.

  2. #2
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Deja il manques des guillemets partout. (la norme veut que les attributs HTML soit entre guillemets et pas quote.

    Tu n'aurais pas un exemple de retour qui ne fonctionne pas ?

    Merci

  3. #3
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Super concaténator à la rescousse

    Bon ben en fait fait comme stunti a dit et je pense que tes soucis seront résolus

    Ceci dit ajouter un petit htmlentities devant chacun de tes champs ne sera pas du luxe !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Effectivement, j'avais remplacé les guillemets (avec un \ devant pour passer au dessus) par des quotes, au cas ou le problème serait venu de là. Malheureusement, aucun changement, je peux remettre mon code dans les normes.

    Je t'aurais transmis bien volontier un exemple, mais sans la base de données associée il est impossible de tester quoi que ce soit... J'ai décrit le comportement général du résultat du code, et rien ne sort de ces 3 principes...

    N'hésite pas à me poser des questions si je n'ai pas été assez clair, en tout cas merci de bien vouloir m'aider.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Bon je m'en suis sorti d'une façon pas très propre, en supprimant toutes les concaténations et en échappant tous les guillemets du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
        echo 
     
     
    "<table class=\"tableadd\" width = 85% align=\"center\">
    <tr>    
        <td width = 25%>Téléphone:<br><input type=\"text\" name=\"Tel\" size=\"15\" value=\"$rowInfo[19]\" readonly>
        <td width = 25%>Portable:<br><input type=\"text\" name=\"portable\" size=\"15\" value=\"$rowInfo[20]\" readonly></td>
    	<td width = 25%>Fax:<br> <input type=\"text\" name=\"Fax\" size=\"15\" value=\"$rowInfo[21]\" readonly></td>
        <td colspan=\"2\" width = 25%>e-Mail:<br> <input type=\"text\" name=\"eMail\" size=\"45\" value=\"$rowInfo[22]\" readonly></td>
    </tr>
    </table>";
     
    ?>
    Plus aucun problème écrit de cette manière, bien que je n'ai toujours pas saisi
    en quoi le code précédent était incorrect. Un mystère des techniques de concaténation qui m'est inconnu sans doute...

    Je laisse donc volontairement le sujet ouvert en n'affichant pas le tag résolu, au cas ou un développeur ingénieux aurait la réponse à cette énigme...

    Merci à ceux qui ont pris le temps de me répondre.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Euh et comme ça ?? Ptet ça change rien mais bon :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    echo '<table class="tableadd" width="85%" align="center">
    <tr>    
        <td width="25%">Téléphone:<br><input type="text" name="Tel" size="15" value="'.$rowInfo[19].'" readonly />
        <td width="25%">Portable:<br><input type="text" name="portable" size="15" value="'.$rowInfo[20].'" readonly /></td>
    	<td width="25%">Fax:<br> <input type="text" name="Fax" size="15" value="'.$rowInfo[21].'" readonly /></td>
        <td colspan="2" width="25%">e-Mail:<br> <input type="text" name="eMail" size="45" value="'.$rowInfo[22].'" readonly /></td>
    </tr>
    </table>';
    Sinon je crois que y'a pas d'erreur m'enfin ...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 47
    Points : 38
    Points
    38
    Par défaut
    Ca marche !

    En regardant les différences entre mon premier code et le tien, ce serait l'absence de quote encadrant les valeurs qui serait la source du problème.

    Merci à toi, ce coup ci je peux afficher un beau résolu

  8. #8
    Invité
    Invité(e)
    Par défaut
    De rien, je suis contente d'avoir pu aider
    Et je pense qu'effectivement c'était ça le problème, oublie pas de toujours mettre des " ou ' (ça dépend de comment t'écris les choses) pour les valeurs des attributs HTML

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

Discussions similaires

  1. [MySQL] Fonction echo'' ne s'affiche pas.
    Par Velkan.nexus dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/10/2007, 16h17
  2. Fonction echo ne marchant pas
    Par aygouin dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2007, 21h38
  3. Problème avec la fonction echo
    Par pas30 dans le forum Langage
    Réponses: 1
    Dernier message: 26/12/2006, 04h19
  4. Signification \t dans fonction echo ou print
    Par webrider dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2006, 13h44
  5. [AccessXP][SQL]Fonction NZ() et concaténation
    Par steelidol dans le forum Access
    Réponses: 3
    Dernier message: 08/10/2005, 18h27

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