0

我有 php prinf 并且不适用于<li type="1">. 它仅适用于 chrome 浏览器,我该怎么做才能使其适用于所有浏览器?

我的 php 代码很长,不能提供较短的版本:

示例代码是这样的:

<ul>
<table>
$result = mysql_query("........",$db);

if(mysql_num_rows($result) > 0)
{
    $myrow = mysql_fetch_array($result);
do
{
    printf ("

<tr><td><li type="1">%s</li></td></tr>",$myrow["var"]);
}
while ($myrow = mysql_fetch_array($result));    
}
else
{
    echo "<p align='center'>error...</p>";
}

</table></ul>

这是截图

4

1 回答 1

2

从提供的示例代码中,您弄乱了标签顺序。尝试这个。注意我已经移动了标签订单。希望这是您想要实现的目标。问题太不清楚了。

<table>
<?php
$result = mysql_query("........",$db);

if(mysql_num_rows($result) > 0)
{
    echo '<tr><td><ul>';
    $myrow = mysql_fetch_array($result);
    do
    {
        printf ("<li type=\"1\">%s</li>",$myrow["var"]);
    }
    while ($myrow = mysql_fetch_array($result)); 
    echo '</ul></td></tr>';
}
else
{
    echo "<p align='center'>error...</p>";
}
?>
</table>

标签顺序应该是。您不能<table>作为<ul>. <ul>只能<li>作为孩子。

<table>
   <tr>
       <td>
           <ul>
               <li>...</li>
           </ul>
       </td>
   </tr>
</table>

编辑:
您可能不需要<ul>...</ul>标签。你可以用简单的桌子来做。尝试这个

<?php
$result = mysql_query("........",$db);

if(mysql_num_rows($result) > 0)
{
    echo '<table>';
    $rownum=1; //just a counter here, if have other real value then use it
    $myrow = mysql_fetch_array($result);
    do
    {
        printf ("<tr><td>%d</td><td>%s</td></tr>", $rownum, $myrow["var"]);
        $rownum++;
    }
    while ($myrow = mysql_fetch_array($result)); 
    echo '</table>';
}
else
{
    echo "<p align='center'>error...</p>";
}
?>

如果你想用刚刚排序的列表来做,你可以像下面这样做

<?php
$result = mysql_query("........",$db);

if(mysql_num_rows($result) > 0)
{
    echo '<ol>';
    $myrow = mysql_fetch_array($result);
    do
    {
        printf ("<li>%s</li>", $myrow["var"]);
        $rownum++;
    }
    while ($myrow = mysql_fetch_array($result)); 
    echo '</ol>';
}
else
{
    echo "<p align='center'>error...</p>";
}

注意: type属性<li>在 HTML 4.01 中已弃用。并且在 HTML 5 中不受支持。

于 2013-09-08T15:08:06.007 回答