-1

私のプログラムでは、スクロール可能なテーブルを作成しました。スクロールバーが表示され、適切なデータが返されるまで、すべてが正常に機能しています。

奇妙なことに、理由がわかりません。テーブルのヘッダーの上に、「echo」という単語が7回繰り返され、レコードごとに1つずつ返されます。私は明らかに私のコードにいくつかの欠陥があります、しかし私はそれを見つけることができませんでした、どんな助けもありがたいです

    <?php
    echo "<div class='scrollableContainer'>";
    echo "<div style=' height: 125px; width: 535px; font-size: 10px; overflow: auto;'>";
    echo "<table class='referrals scrollable'>";
    echo "<thead><tr> 
            <th class='date'>Date</th>
            <th class='name'>Student Name</th>
            <th class='email'>Email</th>
            <th class='phone'>Phone</th>
            <th class='status'>Status</th>
    echo </tr></thead>";
            $query2 = "select * from students where referred_by ='$referral_id_to_use'";
            $result2 = mysql_query($query2);

            $num_rows = mysql_num_rows($result2);
            if($num_rows>0){
                 while  ($row = mysql_fetch_array($result2))
                  {
                       extract($row);
                         $student_name=$first_name.' '.$last_name;      
                 if($current_status=1)
                     {
                        $student_status="Active";
                     }else{
                        $student_status="Inactive";
                     }
        echo "<tr>\n
              <td class='date'><div>$date_joined</div></td>
              <td class='name'><div>$student_name</div></td>
              <td class='email'><div>$emailaddress</div></td>
              <td class='phone'><div>$phone_number</div></td>   
              <td class='status'><div>$student_status</div></td>
        echo </tr>";
            }
        }       
    echo "</table>";
    echo "</div>";
    echo "</div>";
    ?>

ここでも、エコーの余分な行がテーブルヘッダーの上に表示されます。

ありがとうございました

4

2 に答える 2

4

aと。echoの間のデータとして単語があります。</td></tr>

ここではテキストが許可されていないため、ブラウザはエラーを回復し、許可されている場所(テーブルの前)にテキストを移動しています。

<td class='status'><div>$student_status</div></td> echo </tr>";

ソースから「echo」という単語を削除します。

この種のことは、PHPをブラウザーでのレンダリングと比較するだけでなく、生成されたHTMLを調べ、生成されたHTMLをバリデーターで実行することで簡単に理解できます。

于 2012-08-28T13:17:29.157 に答える
2

ここにあります:

echo "<thead><tr> 
        <th class='date'>Date</th>
        <th class='name'>Student Name</th>
        <th class='email'>Email</th>
        <th class='phone'>Phone</th>
        <th class='status'>Status</th>
echo </tr></thead>";

最後の行。@Quentinの答えに見られるように、体にも。

于 2012-08-28T13:17:38.610 に答える