5184 sujets

Sémantique web et HTML

Bonjour,
Je cherche un moyen de faire passer un texte à l"attribut "title" d'après un fichier, dans des balises de type <a href="./repertoire/machin.html" title='./repertoire/fichier.text'>MACHIN</a>.
Je génère ces lignes html par une boucle dans un fichier php, et j'aimerais ainsi faire varier le "title" grâce à des fichiers txt de même nom avec contenus différents dans chacun de ces répertoires.
Si pas possible : avec "onmouseover" - comment ?
Quelqu'un a-t'il une astuce ? Merci.
Modérateur
Dickie a écrit :
Bonjour,
Je cherche un moyen de faire passer un texte à l"attribut "title" d'après un fichier, dans des balises de type &lt;a href="./repertoire/machin.html" title='./repertoire/fichier.text'&gt;MACHIN&lt;/a&gt;.
Je génère ces lignes html par une boucle dans un fichier php, et j'aimerais ainsi faire varier le "title" grâce à des fichiers txt de même nom avec contenus différents dans chacun de ces répertoires.
Si pas possible : avec "onmouseover" - comment ?
Quelqu'un a-t'il une astuce ? Merci.


Salut Dickie et bienvenue parmi nous,

Je comprends pas bien ta problématique. As tu un exemple plus explicite ?
- Pourquoi veux tu passer par du js alors que dès le départ, tu as le controle sur la mise en forme html ?
- Pourquoi veux tu éditer l'attribut title alors qu'apparemment il y aura du texte dans le noeud ? Ne serait ce t'il pas de faire doublon ?
Bonjour, merci de répondre aussi rapidement.
Je génère le html d'azprès une boucle en php, à chaque tour de boucle le répertoire change, et je désire changer aussi le message compris dans l'attribut : title=message1, puis message2, puis ...
le source :
<?php
require('./communs/cherche_galeries.php');
echo "\tGALERIES EXISTANTES\n\t";
echo "\t<ul>\n\t";
foreach($noms_galeries as $nom){
echo "\t\t<li><a class='Lien' href='./galeries.php?ssrep=$nom' title='***'>$nom</a></li>\n\t";
}
echo "\t</ul>";
?>
Pour l'instant, c'est toujours le "***" pour chaque ligne (et chaque repertoire :$nom)
J'espère avoir été assez clair,
Merci de tes suggestions.
Modérateur
Dickie a écrit :
Bonjour, merci de répondre aussi rapidement.
Je génère le html d'azprès une boucle en php, à chaque tour de boucle le répertoire change, et je désire changer aussi le message compris dans l'attribut : title=message1, puis message2, puis ...
le source :
&lt;?php
require('./communs/cherche_galeries.php');
echo "\tGALERIES EXISTANTES\n\t";
echo "\t&lt;ul&gt;\n\t";
foreach($noms_galeries as $nom){
echo "\t\t&lt;li&gt;&lt;a class='Lien' href='./galeries.php?ssrep=$nom' title='***'&gt;$nom&lt;/a&gt;&lt;/li&gt;\n\t";
}
echo "\t&lt;/ul&gt;";
?&gt;
Pour l'instant, c'est toujours le "***" pour chaque ligne (et chaque repertoire :$nom)
J'espère avoir été assez clair,
Merci de tes suggestions.


Non, malheureusement c'est toujours pas clair...
Déjà, on va faire plus propre. Parce que désolé mais ton code est à la limite de la lisibilité (mise à part ton manque de mise en forme de ton code dans le message du forum).


<?php require_once './communs/cherche_galeries.php'; ?>
<h2>GALERIES EXISTANTES</h2>
<ul>
    <?php foreach($noms_galeries as $nom):?>
    <li>
        <a href="./galeries.php?ssrep=<?= $nom ?>" class="Lien" title="***"><?= $nom ?></a>
    </li>
    <?php endforeach;?>
</ul>

* tu remarqueras que j'ai utilisé un h2. De toute évidence, ton texte est un titre. À toi de voir la sémantique la plus appropriée (h1, h2, h3, etc.).
Peux tu mettre sur le forum ce que fait le code cherche_galeries.php stp ? Aussi, je te remercie par avance de rééditer ton message initial en utilisant les boutons de Colorisation syntaxique. Ça permettra d'y voir plus clair.
Modifié par niuxe (02 Jul 2020 - 17:35)
cherche_galeries.php récupère les noms des différents sous-répertoires ($galerie) de "./img/" dans un tableau ($noms_galeries).
<?php
$repertoire='./img/';
$chemin_galeries = opendir($repertoire);
$noms_galeries=array();
// while($galerie = readdir($chemin_galeries)){
while(false !==($galerie = readdir($chemin_galeries))){
	if(is_dir($repertoire.$galerie) && $galerie!="." && $galerie!="..")
		{array_push($noms_galeries, $galerie);}
	}
closedir($chemin_galeries);
$nb_galeries=count($noms_galeries);
// echo "\t<br/><br/>".$nb_galeries." galeries trouvées <br/>dans ".$repertoire." <br/>";
?>


Le code précédent (merci pour tes correction) boucle afin de générer le html suivant

<div id='gauche'>
		GALERIES EXISTANTES
		<ul>
			<li><a class='Lien' href='./galeries.php?ssrep=mai 1968' title='***'>mai 1968</a></li>
			<li><a class='Lien' href='./galeries.php?ssrep=mine de soufre' title='***'>mine de soufre</a></li>
			<li><a class='Lien' href='./galeries.php?ssrep=modèles' title='***'>modèles</a></li>
			<li><a class='Lien' href='./galeries.php?ssrep=Paris nocturne' title='***'>Paris nocturne</a></li>
		</ul>
	</div>


Je pensais faire afficher un texte différent dans le "title" de chaque balise <a> en allant le chercher dans le sous-répertoire correspondant (du type "/ssrep/commentaire.txt")

Merci encore
Modérateur
C'est beaucoup plus clair. Ça va te donner ceci :


<?php require_once './communs/cherche_galeries.php'; ?>
<h2>GALERIES EXISTANTES</h2>
<ul>
    <?php foreach($noms_galeries as $nom):?>
    <?php 
        $path_file = sprintf('%s%s/commentaire.txt', $repertoire, $nom);
        $title = file_exists($path_file)? file_get_contents($path_file) : ''; 
    ?> 
    <li>
        <a href="./galeries.php?ssrep=<?= $nom ?>" class="Lien" title="<?= $title ?>"><?= $nom ?></a>
    </li>
    <?php endforeach;?>
</ul>

* code fait de tête. Il se peut qu'il y ait une coquille. C'est une piste à suivre

edit :
Je remarque que tu utilises des espaces dans les noms de tes répertoires.... c'est pas très bon. Utilise soit des underscores soit des traits d'union à la place des espaces. Sinon, ça risque d'être source de problèmes.
Modifié par niuxe (02 Jul 2020 - 18:52)
Meilleure solution
Modérateur
Je t'en prie.

Si le sujet te semble résolu, je t'invite à cocher la case "Marquer le sujet comme résolu"
Merci encore,
Pour les espaces, je vais essayer de las remplacer par autre chose (Alt+255 ?)
Novice : je reviendrai !!!
Modérateur
Dickie a écrit :
Merci encore,
Pour les espaces, je vais essayer de las remplacer par autre chose (Alt+255 ?)
Novice : je reviendrai !!!


 non, le trait d'union (caractère en dessous du chiffre 6 vers le haut de ton clavier). Aussi, ne pas mettre de caractère français : çàéè etc.
Modifié par niuxe (03 Jul 2020 - 10:05)