2017-05-20 8 views
0

以下は、HTMLテーブルを作成するPHPスクリプトのwhileループです。私はその値に応じて<td id="status"></td>の属性を設定するために、一番下のIF文を必要とします。しかし、コードを実行すると、最初の行の値だけが設定されます。 問題はループ内で単一の要素IDを使用していることにあります。テーブル内のすべての行に要素ID "status"を使用できますか?すべてのLoop through table php

while($row=mysqli_fetch_assoc($result)){ 
       $dd=strtotime($row["due_date"]); 
       $dd=Date('d-m-Y',$dd); 
       $bd=strtotime($row["borrow_date"]); 
       $bd=Date('d-m-Y',$bd); 

       echo ' 
       <tr> 
       <td>'.$row["user_email"].'</td> 
       <td>'.$row["last_name"].'</td> 
       <td>'.$row["first_name"].'</td> 
       <td>'.$row["movie_ID"].'</td> 
       <td>'.$row["title"].'</td> 
       <td>'.$row["year"].'</td> 
       <td>'.$bd.'</td> 
       <td>'.$dd.'</td> 
       <td id="status"></td> 



       </tr> 
       '; 
       $i++; 

       if($dd<$cd){ 
        echo' <script type="text/javascript"> 
        document.getElementById("status").innerHTML="Overdue"; 
        </script>'; 
       } 
       else{ 
        echo ' 
        <script type="text/javascript"> 
        document.getElementById("status").innerHTML="Not Due"; 
        </script>'; 
       } 
      } 
+0

あなたがすることはできません複数の要素に同じ 'id'を使います。 –

+1

代わりにクラスを使用してください。例えばif(true)class = "status1" else class = "status2" – melkawakibi

答えて

3

まず - あなたは、複数の要素に同じIDを使用することはできません。

読み取り関数名:getElementById。 ではなく、Elementを参照してください。そのため、getElementByIdを使用すると、最初の要素のみが返されます。さらに行く

は - あなたはあなたのPHPの条件(例えば、簡単な三項演算子を使用して)を確認し、javascriptを忘れることができます。

// previous code here 
    '<td>'.$dd.'</td> 
    <td>' . ($dd<$cd? 'Overdue' : 'Not Due') . '</td> 
</tr>'; 
$i++; 
1

は、単にあなたは、PHP自体に行うことができます

if($dd<$cd){ 
     echo '<td>Overdue</td>'; 
    }else{ 
    echo '<td>Not Due</td>'; 
    }