-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 を返し、そこに含まれる要素を使用して個別のテーブルを作成しています。

以下は 3 項の if ステートメントです。つまり、if c[2] exists echo c[2] if not echo '' 行の最初は質問、次に疑問符、そして質問が true の場合の対処方法です。次にコロンと、質問が偽の場合の対処方法。

$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>';

最初の要素が ap タグでラップされた div を生成します。

個人的には、各項目を個別にエコーアウトして、返される内容を確認し、それに応じて 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 に答える