How do you use echo inside html table row?

2019-03-07 06:12发布

问题:

I am using echo inside the HTML tr tag where I am getting an error.

Here is my code

index.php

<?php
$i=0;
    while($row=mysql_fetch_array($ros))
    {
    if($i%2==0)
$classname="evenRow";
else
$classname="oddRow";
echo '<tr class="id" >';
echo '<tr class="'echo $classname'">';
?>

I am getting following error:

Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in E:\xampp\htdocs\pagination\index.php on line 64

Where am I going wrong and how can I achieve my desired output?

Thanks in advance

回答1:

The problem is not that you are inside a table row, but that you are inside a PHP string, and the answer is: You don't.

You either:

  • Interpolate your variable
  • Concatenate your variable
  • Don't use echo and a string for the outside output

Such:

<?php
$i=0;
while($row=mysql_fetch_array($ros)) {
    if($i%2==0) {
        $classname="evenRow";
    } else {
        $classname="oddRow";
?>
<tr class="id">
    <tr class="<?php echo $classname; ?>">
<?php
    }
# ...

NB: You appear to be trying to nest table rows, which isn't allowed.

You can probably dispense with the odd/even class names and just use :nth-child(odd) and :nth-child(even) in your stylesheet.



回答2:

Just do this. Don't echo twice!

echo '<tr class=" '. $classname .' ">';


回答3:

Change to this

<?php
$i=0;
    while($row=mysql_fetch_array($ros))
    {
    if($i%2==0)
$classname="evenRow";
else
$classname="oddRow";
echo '<tr class="id" >';
echo '<tr class="'.$classname.'">';
?>


回答4:

<?php
$i=0;
while($row=mysql_fetch_array($ros))
{
    if($i%2==0)
        $classname="evenRow";
    else
        $classname="oddRow";

    echo "<tr class='id'>";
    echo "<tr class=".$classname.">";
}
?>


回答5:

You can not use echo inside an echo

echo '<tr class="'echo $classname'">';

Use it like this

echo '<tr class="'.$classname.'">';


标签: php html echo