-2

テーブル行とテーブルデータのforループがあります。私が欲しいのは、すべてのテーブルデータにクラス名を追加することですが、もちろん、それらは同じクラス名にはなりません。

しかし、問題は、関数の出力がテーブルの外に配置されていることです。私はすでに見積もりか何かをチェックしていますが、それでもそれは外に置かれています。誰でも私に理由を説明できますか?

function alphaCount(){
  for ($i=65; $i<=90; $i++) {
    echo char($i);
  }
  for($i=1;$i<=10;$i++) {
    echo '<td  class="char-'.$i.'-'.$this->alphaCount.'"> </td>';
  }
4

2 に答える 2

0

正直なところ、私はあなたのコードをあまり理解していませんが、あなたが説明した問題によると、問題は次のとおりだと思います。

何らかの識別子を生成する関数がありますが、次のように、それを返す代わりにエコーします。

function getId() {
  // something
  echo $id;
}

エントリを生成しているときは、次のコードがあります。

echo "<tr class='" . getId() . "'>...</tr>";

そのように、メソッドはタグがレンダリングされるgetId()前に識別子をエコーし​​ます。<tr>これを解決するには、echo ステートメントをgetIdreturn ステートメントに変更するか、次の方法でエントリ ジェネレーターを書き換えます。

echo "<tr class='"
getId();
echo "'>...</tr>";

これが問題だったことを願っています。

于 2013-02-12T09:52:57.857 に答える
0

結果の HTML ソース (ブラウザーの「ソースの表示」から) を見ると、それが無効であることがわかります。

abcdefg...
<td class="char-1-?"> </td>
<td class="char-2-?"> </td>
...

最初のループで出力するものは、テーブル セルの外側にあります。ブラウザーは、それが完全にテーブルの外にあるかのように処理します。

編集:質問で括弧をねじ込み、実際のコードがまったく異なることをする可能性もあります。元のフォーマットから判別するのは困難です。

于 2013-02-12T09:53:13.800 に答える