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 :

La commande echo insère des balises td et tr à l'intérieur d'un lien hyperlink


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 31
    Points : 41
    Points
    41
    Par défaut La commande echo insère des balises td et tr à l'intérieur d'un lien hyperlink
    Bonjour à tous,
    C'est sans doute une question bête mais bon je me lance !
    A partir d'un fichier csv (facile à mettre à jour), je créé une page php qui génère un tableau. Dans le fichier csv, il y a des liens vers d'autres pages internet que je veux mettre en lien avec la balise <a href=lien>. Mon problème est que les liens sont longs et que la commande echo coupe mon lien en y insérant des balises td et tr ce qui les rend inopérants.
    Quand j'ouvre le code source de ma page générée, mon lien se retrouve de la façon suivante :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="https://longuelonguelonguelonguelonguelonguelonguelonguelonguelonguelongueadres</td></tr>
    <tr><td>se">Lien</a>
    J'ai tenté d'insérer des largeurs dans la balise td sans résultat, je pense que c'est la commande echo qui génère cette erreur mais je ne comprends pas comment éviter ce problème ?
    Vous remerciant par avance

    Le fichier csv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MARQUE;LIEN
    Supermarque;<a href="https://longuelonguelonguelonguelonguelonguelonguelonguelonguelonguelongueadresse">Lien</a>
    la page php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <html>
        <meta charset="utf-8">
        <title>Marques</title>
    <head>
    </head>
      <body>
      <h1>Liste des marques</h1>
      <h2>Selectionner les marques</h2>
      <form  method="post">
      	<select id="av_marque" name="pn_marque">
          <option selected="selecte">Selectionner la marque</option>
          <?php
     
    	$marq_marque=array("Supermarque");      
    	foreach($marq_marque as $value){
          ?>
          <option value="<?php echo $value; ?>"><?php echo $value; ?></option>
    	  <?php
    	        }
          ?>
        </select></label>
    	<input type="submit" value="Select" name="select">
    	</form></br>
     
      </body>
     
    <?php
    // Définition du nom de fichier
    $nomfichier = "marques_liste2.csv"; 
     
    	if (file_exists($nomfichier)) {
    		$file_to_read = fopen($nomfichier, 'r');
    		if($file_to_read !== FALSE){
    			echo "<table>\n";
    			while(($data = fgetcsv($file_to_read, 100, ';')) !== FALSE){
    				echo "<tr>";
    				for($i = 0; $i < count($data); $i++) {
    					if (isset($_POST["select"])) {
    						$pn_marq=$_POST["pn_marque"];
    						if ($data[0] == $pn_marq) {
    							echo "<td>".$data[$i]."</td>";
    						}
    					}
     
    					else {
     
    					echo "<td>".$data[$i]."</td>";
    						}
    					}
    				echo "</tr>\n";
    			}
    			echo "</table>\n";
    		fclose($file_to_read);
    		}
    		echo "<br>";
     
    	} else {
    		echo "Le fichier $nomfichier n'existe pas";
    	}
     
    ?>
    </html>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 255
    Points : 8 548
    Points
    8 548
    Billets dans le blog
    17
    Par défaut
    while(($data = fgetcsv($file_to_read, 100, ';')) !== FALSE){
    Avec ce 100 tu ne récupères que les 100 premiers octets de la ligne.
    Remplace-le par null => https://www.php.net/manual/fr/function.fgetcsv.php

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 31
    Points : 41
    Points
    41
    Par défaut Merci beaucoup Séb. !
    Nickel, ça fonctionne, merci beaucoup !
    Si on sait où chercher, c'est mieux !
    Je ne suis qu'un utilisateur occasionnel de php, ça se voit.
    Bonne continuation et merci pour le coup de main

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

Discussions similaires

  1. [Article] Liste des balises et de leurs enfants pour une validation XHTML 1.1
    Par giminik dans le forum Publications (X)HTML et CSS
    Réponses: 12
    Dernier message: 12/02/2018, 15h11
  2. [Batch] Utiliser la commande ECHO pour des chaines longues
    Par Delphi-ne dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/04/2017, 10h51
  3. XLS - Nom des balise
    Par lakrimo dans le forum XMLRAD
    Réponses: 2
    Dernier message: 05/02/2004, 11h12
  4. Position des balises H2 ou comment les numéroter
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/07/2003, 19h24
  5. Placement des balises avec DTD
    Par Keul125 dans le forum Valider
    Réponses: 4
    Dernier message: 28/05/2003, 12h08

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