-1

我正在尝试重新设计一个 Web 应用程序,但我被这段代码难住了:

foreach ($this->cells1 as $c) {
            $s .= $c[2] ? $c[2] : '';
            $s .= '<div style="clear:both"><table><tr><td nowrap="nowrap"' . ($c[0] ? (' ' . $c[0]) : '') . '>';
            $s .= $c[1] ? $c[1] : '&nbsp;';
            $s .= '</td>';
            $s .= $c[3] ? $c[3] : '';
        }
        $s .= '</tr></table></div>';

它正在生成 HTML 代码,例如:

<div style="clear:both"></div>
<table>
   <tbody>
      <tr>
        <td nowrap="nowrap">Search:</td>
        <form action="some-action" method="post"></form>
      </tr>
   </tbody>
 </table>

 <div style="clear:both"></div>
 <table>
   <tbody>
      <tr class="alt-row">
        <td nowrap="nowrap">
          <input type="text">
        </td>
      </tr>
   </tbody>
 </table>

 <div style="clear:both"></div>
 <table>
   <tbody>
     <tr>
       <td nowrap="nowrap">&nbsp;</td>
       <form action="some-action" method="post"></form>
     </tr>
   </tbody>
 </table>

and so on. . . .

它看起来像这样:

忽略按钮的大小。 这是故意的

我只想将它们全部放在一个我可以根据自己的口味设计的 div 中。任何人都可以向我解释那部分代码,以便我可以使用它吗?或者更好地向我展示一种使它们适合 div 的替代方法。

4

2 回答 2

2

您需要澄清您的问题以提及您希望删除表结构。

这里发生的是应用程序正在为该数组中的每个项目返回一个数组 $this->cells1 它正在使用它包含的元素创建一个单独的表。

下面是一个三元 if 语句,它的意思是如果 c[2] 存在 echo c[2] if not echo '' 行中的第一件事是问题,然后是问号,如果问题是真的该怎么办然后是一个冒号,如果问题是错误的该怎么办。

$c[2] ? $c[2] : '';

要将其更改为仅创建 div,您真正需要做的就是删除表格标记并将其替换为您需要的任何内容。

例如:

foreach ($this->cells1 as $c) {
            $s .= $c[2] ? $c[2] : '';
            $s .= '<div><p>' . ($c[0] ? (' ' . $c[0]) : '');
            $s .= $c[1] ? $c[1] : '&nbsp;';
            $s .= '</p>';
            $s .= $c[3] ? $c[3] : '';
        }
        $s .= '</div>';

将生成一个 div,其中第一个元素包裹在 ap 标签中。

就个人而言,我会做的是单独回显每个项目以查看它返回的内容,然后相应地构造 foreach,因为老实说,它看起来也有一些从数据库返回的 HTML。

foreach($this->cells1 as $c) {

    echo 'c0:' . $c[0];
    echo 'c1:' . $c[1];
    echo 'c2:' . $c[2];
    echo 'c3:' . $c[3];
}

这将为您提供每个元素返回的内容的列表,这样您就可以弄清楚数据的样子,在您知道如何处理它会让生活变得更轻松之后。

于 2013-03-18T10:38:20.650 回答
0

echo "<div id='mycustomdiv'>";
foreach ($this->cells1 as $c) {
            $s .= $c[2] ? $c[2] : '';
            $s .= '<div style="clear:both"><table><tr><td nowrap="nowrap"' . ($c[0] ? (' ' . $c[0]) : '') . '>';
            $s .= $c[1] ? $c[1] : ' ';
            $s .= '</td>';
            $s .= $c[3] ? $c[3] : '';
        }
        $s .= '</tr></table></div>';

echo "</div>";

请参阅上面的代码,那里有您的自定义 div 的回声和关闭该 div 的回声。添加这些回声。如果您需要解释代码,请告诉我。

于 2013-03-18T09:57:57.773 回答