Balise alt

Eléphant du PHP | 193 Messages

23 janv. 2007, 15:51

Bonjour à tous!

J'ai utilisé la méthode if, grâce à l'aide des modos et de participants au forums pour faire afficher une image. Tout fonctionnait jusqu'à ce que le validator de W3C me repproche mon manque de balises alt.

J'ai donc voulu intégrer ces balises; et là,... ça ne fonctionne plus? Mais où est l'erreur? Je ne comprends plus rien!

Code : Tout sélectionner

<div id="etoile"><?php echo '<img src="Images/etoile'.$row_rs_camping['nbetoiles_camping'].'.png" ; alt="Nombre d'étoiles"></img>' ?></div>
Merci par avance!

Invité
Invité n'ayant pas de compte PHPfrance

23 janv. 2007, 15:55

Retire le ; avant le alt

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 janv. 2007, 16:04

Tu utiliserais un éditeur avec coloration syntaxique, tu aurais vu ton erreur tout de suite ;)
<div id="etoile">
<?php echo '<img src="Images/etoile'.$row_rs_camping['nbetoiles_camping'].'.png"  alt="Nombre d'étoiles"></img>' ?>
</div>
Regarde bien dans le texte du alt, il y a un soucis de '
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 193 Messages

23 janv. 2007, 16:12

Merci pour vos réponses!

Je ne comprends pas: on ne peux pas utiliser de signe ' dans le texte du alt??? :?

C'est pas terrible ça...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 janv. 2007, 16:18

Je ne comprends pas: on ne peux pas utiliser de signe ' dans le texte du alt??? :?
Si on peut tout utiliser dans le alt, le problème n'est pas à ce niveau

Est-ce que le nombre d'étoiles ne serait pas une information un peu plus utile que "nombre d'étoiles" ?

J'ai pas les images, je suis bien content de savoir que si je les avais je saurais combien d'étoiles à ce camping :cry:

Eléphant du PHP | 193 Messages

23 janv. 2007, 16:30

Alors l'image avec une fonction if permet de montrer le nombre d'étoiles pour le camping; mais effectivement la balise alt permettrait de donner l'info pour les défiscients visuels. Le problème, c'est qu'il va falloir que je rajoute dans ma base de données, une rubrique à remplir du style : "description" de vos étoiles. C pas top. A moins qu'il existe un script permettant de récupérer le nombre d'étoiles et de l'intégrer dans la balise alt: un peu comme une fonction concaténer sous Excel (désolé pour la comparaison, mais on fait avec ce qu'on connait). C'est pour éviter de demander aux campings qu'ils renseignent:

- Nombre d'étoiles: 4
- Commentaire: Ce camping a 4 étoiles

Pour ce qui de ' , j'ai bien l'impression que ça ne fonctionne pas pour le mettre dans le alt... ( on le voit rien qu'avec le code couleur: ça dec...)

ahhhhhhh!!!

Eléphanteau du PHP | 19 Messages

23 janv. 2007, 16:42

<div id="etoile">
<?php 
$alt= "Nombre d'étoiles" ;
 echo '<img src="Images/etoile'.$row_rs_camping.['nbetoiles_camping'].'.png"  alt='.$alt.'></img>' 

?> 
</div> 

 
Tu dois pouvoir ajouter le ' dans le alt comme çà non ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 janv. 2007, 16:49

Alors l'image avec une fonction if permet de montrer le nombre d'étoiles pour le camping; mais effectivement la balise alt permettrait de donner l'info pour les défiscients visuels. Le problème, c'est qu'il va falloir que je rajoute dans ma base de données, une rubrique à remplir du style : "description" de vos étoiles. C pas top. A moins qu'il existe un script permettant de récupérer le nombre d'étoiles et de l'intégrer dans la balise alt: un peu comme une fonction concaténer sous Excel (désolé pour la comparaison, mais on fait avec ce qu'on connait). C'est pour éviter de demander aux campings qu'ils renseignent:

- Nombre d'étoiles: 4
- Commentaire: Ce camping a 4 étoiles

Pour ce qui de ' , j'ai bien l'impression que ça ne fonctionne pas pour le mettre dans le alt... ( on le voit rien qu'avec le code couleur: ça dec...)

ahhhhhhh!!!
Je comprends pas, c'est pas le nombre d'étoiles ça ?
$row_rs_camping.['nbetoiles_camping']
Si tu connais ce nombre, je ne vois pas ce qui t'empêche de le réutiliser comme il te convient


Sinon le alt prend n'importe quelle chaîne de caractères, ne t'occupe pas de ça, ton problème est PHP.

Comment est-ce que ta chaîne de caractères est délimitée dans le echo , Est-ce que tu ne vois pas un problème avec l'apostrophe ?

Eléphant du PHP | 193 Messages

23 janv. 2007, 16:54

A priori, cela ne fonctionne pas, comme tu peux le voir:

http://develop.web.free.fr/template_gen ... _camping=2

De plus, existe t'il un moyen pour récupérer la valeur du champs pour l'intégrer au coeur de la balise alt? du style:

alt="Camping "&"$row_rs_camping.['nbetoiles_camping']"&" étoiles"

:?: :?: :?:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 janv. 2007, 16:57

Pourquoi tu te (et nous) prends la tête avec ta balise alt ? (d'ailleurs c'est un attribut, pas une balise, la balise c'est <img>)

C'est du HTML, que tu construits avec PHP
 echo '<img src="Images/etoile'.$row_rs_camping.['nbetoiles_camping'].'.png"  alt='.$alt.'></img>'  
Tu utilises DEJA ta variable pour créer le nom de ton image, qu'est-ce qui te gêne pour l'utiliser dans le alt ???

ça ne fonctionne pas parceque tu as une apostrophe qui gêne

Tu lis ce que j'écris ? Est-ce que tu as répondu à la question : par qui est délimitée ma chaîne de caractères ? (ce qui est envoyé par la echo)

Répond à cette question, et tu seras sur la voie.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 janv. 2007, 17:00

Regarde aussi le code de The_coach, pourquoi ça marcherait avec le sien et pas avec le tien :
<?php 
$alt= "Nombre d'étoiles";
?>  
=> Pas d'erreur

<?php 
$alt= 'Nombre d'étoiles';
?>  
=> Erreur

Quelle est la différence ?

Heu, je précise que je m'énerve pas, je veux juste que tu comprennes que ton problème est liée aux apostrophes dans les chaînes de caractères PHP, et pas particulièrement au ALT, qui ne nous intéresse pas à ce niveau.
Modifié en dernier par ouckileou le 23 janv. 2007, 17:03, modifié 1 fois.

Eléphant du PHP | 193 Messages

23 janv. 2007, 17:02

Le savoir faire peut-être.

Mon expérience du PHP se limite à "Training from the source" de Macromédia Press.

Désolé, pour le lien: j'avais oublié que le PHP n'apparaissait pas dans le code.

On peut voir le code complet de la page ici:

http://develop.web.free.fr/code-php.txt

Désolé, si j'ai l'air un peu lent à la compréhension, mais des choses peuvent apparaître évidentes pour ceux qui savent tandis qu'elles sont moins à la portée des nioubs.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 janv. 2007, 17:06

Je comprends bien que c'est pas évident, c'est pour ça que j'essaie tu trouves tout seul en t'orientant, parceque c'est ces petits problèmes de syntaxe reviennent toujours
<?php 
$alt= 'Nombre d'étoiles';
?>  
Par quoi est délimitée cette chaîne ?
réponse : des apostrophes

DONC : si tu insères une apostrophe, il croit que c'est la fin de chaîne, alors que ça l'est pas, il est perdu, erreur.

Pourquoi ça marche dans le code de The_coach ? Parcequ'il a délimité sa chaîne par des guillemets. C'est une solution.

Une autre solution est de faire précéder l'apostrophe qui ne doit pas être prise pour une fin de chaîne par un anti-slash : \

Eléphant du PHP | 193 Messages

23 janv. 2007, 17:29

Désolé, mais là j'ai beau essayé... je cherche une corde.

Code : Tout sélectionner

<div id="etoile"><?php if($row_rs_camping['nbetoiles_camping']==1){echo '<img src="Images/etoile1.png">' alt="Camping 1 étoile"} elseif($row_rs_camping['nbetoiles_camping']==2){echo '<img src="Images/etoile2.png">' alt="Camping 2 étoiles"} elseif($row_rs_camping['nbetoiles_camping']==3){echo '<img src="Images/etoile3.png">' alt="Camping 3 étoiles"} else{echo '<img src="Images/etoile4.png">' alt="Camping 4 étoiles"}?> </div>
J'ai remplacé par du code que je comprends mieux: tant qu'il n'y a pas les attributs alt, cela fonctionne, dès que je rajoute ces gentils attributs, ça plante.

J'ai bien compris que je mélangeais du HTML (alt) avec le php, mais je ne sais pas comment sortir les attributs alt pour qu'ils ne soient pas considérés comme php. C'est à vous dégoûter du W3C, ou du PHP.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 janv. 2007, 17:44

Tu ne dois pas lire attentivement ce qu'on écrit, on t'a dit où était le problème et quelle était la solution pourtant.
echo '<img src="Images/etoile'.$row_rs_camping.['nbetoiles_camping'].'.png"  alt="Nombre d\'étoiles"></img>';
Le \ permet d'échapper l'apostrophe, de dire que ce n'est pas la fin de la chaîne.

Et variante pour réutiliser le nombre :
echo '<img src="Images/etoile'.$row_rs_camping.['nbetoiles_camping'].'.png"  alt="Camping '.$row_rs_camping.['nbetoiles_camping'].' étoiles"></img>';
Tu peux rajouter un test pour mettre un "s" à étoile ou pas.