Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Espaces intra et inter cellules non prises en compte

5 réponses
Avatar
R.L.
Bonjour,

Quelques soient la valeur des 2 derniers arguments passés à la fonction
(ici, 8 et 8), le résultat ne change pas à l'affichage.
MEn outre, même si je modifie en dur (4 et 4), il n'y a pas de modif. à
l'affichage.
Voici mon code :

<?php
function create_table2( $data, $border = 1, $cellpadding = 4,
$cellspacing = 4 )
{
echo "<table border = $border cellpadding = $cellpadding"
."cellspacing = $cellspacing>";
reset($data);
$value = current($data);
while ($value)
{
echo "<tr><td>$value</td></tr>\n";
$value = next($data);
}
echo "</table>";
}
$my_array = array('Vlad.','Ilo.','Oli.');
create_table2($my_array, 5, 8, 8); // *** les 2 dernières valeurs ne
sontpas prises en compte ! ***
?>

-----------
Une piste ?

Merci.
Rosa

5 réponses

Avatar
Olivier Miakinen

<?php
function create_table2( $data, $border = 1, $cellpadding = 4,
$cellspacing = 4 )
{
echo "<table border = $border cellpadding = $cellpadding"
."cellspacing = $cellspacing>";
[...]

create_table2($my_array, 5, 8, 8); // *** les 2 dernières valeurs ne
sontpas prises en compte ! ***
?>

-----------
Une piste ?


Facile ! La valeur de cellpadding est collée au nom de l'attribut
cellspacing, comme tu devrais t'en rendre compte en regardant le code
source HTML généré :
<table border = 5 cellpadding = 8cellspacing = 8>

Note que ces attributs seraient mieux dans des règles CSS, et par
ailleurs il peut être utile de mettre des guillemets (même si ce
n'est obligatoire qu'en XHTML).

Sans CSS :
echo "<table border='$border' cellpadding='$cellpadding'"
. " cellspacing='$cellspacing'>n";

Avec CSS :
(voir du côté de fr.comp.infosystemes.www.auteurs)

Avatar
CrazyCat
R.L. wrote:
function create_table2( $data, $border = 1, $cellpadding = 4,
$cellspacing = 4 )
{
echo "<table border = $border cellpadding = $cellpadding"
."cellspacing = $cellspacing>";
create_table2($my_array, 5, 8, 8); // *** les 2 dernières valeurs ne
sontpas prises en compte ! ***


En essayant de faire un code propre et conforme:
echo "<table border="".$border." cellpadding="".$cellpadding.""
cellspacing="".$cellspacing."">";

Je ne suis pas bien sur que les navigateurs apprécient les espaces entre
les attributs et leur valeurs, ni l'absence de guillemets autour des
valeurs.

--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net

Avatar
Carbo
R.L. wrote:

echo "<table border = $border cellpadding = $cellpadding"
."cellspacing = $cellspacing>";


echo "<table border="$border" cellpading="$cellpading"
cellspacing="$cellspacing">";

les espaces entourant les = ne sont pas très appréciés en html ;-)


--
<http://uon.be/blog/>

Avatar
Mihamina Rakotomandimby
R.L. wrote:
Bonjour,


Bonjour,

<?php
function create_table2( $data, $border = 1,
$cellpadding = 4,
$cellspacing = 4 )
{
echo "<table border = $border cellpadding = $cellpadding"
."cellspacing = $cellspacing>";


Regarde un peu, dans les sources de la page génrée le code HTML que
donne cette partie.
Je suis certain que tu verras de suite ce qui se passe.

Avatar
Olivier Miakinen
[ copie et suivi dans fr.comp.infosystemes.www.auteurs ]

Bonjour,

À propos d'un code HTML ressemblant à ceci :
<table border = 5>


les espaces entourant les = ne sont pas très appréciés en html ;-)



Je ne suis pas bien sur que les navigateurs apprécient les espaces entre
les attributs et leur valeurs, ni l'absence de guillemets autour des
valeurs.


En ce qui concerne l'absence de guillemets, c'est sûr que c'est interdit
en XHTML mais autorisé en HTML pour certains types de valeurs (comme ici
en l'occurrence pour des nombres).

En revanche, pour ce qui est de la présence ou de l'absence d'espaces
autour du signe « = », je sais que c'est autorisé en XHTML, mais je n'ai
pas trouvé l'information pour HTML. Quelqu'un aurait un pointeur sur la
syntaxe SGML ?

Olivier