2014-10-01 45 views
0

我試圖通過從MySQL讀取它的X,Y座標來創建一個DIV框。我在同一個文件上使用PHP和HTML。我也包含了我的CSS(之後我將創建一個單獨的CSS文件)。如何在PHP中使用while循環創建DIV框?

現在我正在得到結果,但只有一個在另一個之下。我正在製作笛卡兒地圖,並且必須將每個BOX放在適當的位置上。 我想避免使用JavaScript和畫布,只是純CSS,HTML和PHP我使用DIVs的特定原因後,把他們的信息。以下是我的代碼,在此先感謝您的幫助!

頂部的文件我有:

<!DOCTYPE html> 
<?php 
include 'db_conn.php'; 

//query to get X,Y coordinates from DB 
$coord_sql = "SELECT x_coord, y_coord FROM coordinates"; 
$coord_result = mysqli_query($conn,$coord_sql); 

//see if query is good 
if($coord_result === false) { 
    die(mysqli_error()); 
} 
?> 

我的頭部CSS:

<style type="text/css"> 
    #desk_box{ width: 20px; height: 30px; border:10px solid black; margin: 10px;} 
</style> 

我經過這裏試圖循環,對於存在創建每一行在適當位置的div:

<div class="section_a" > 
    <p>Section A</p> 
    <?php 

//get number of rows for X,Y coords in the table 
while($row = mysqli_fetch_assoc($coord_result)){  
    //naming X,Y values 
    $x_pos = $row['x_coord']; 
      $y_pos = $row['y_coord'];  

    //draw a box with a DIV at its X,Y coord  
    echo "<div id='desk_box'>box here</div>";           
    } //end while coord_result loop 
?> 

</div> <!-- end div section_a --> 
+2

看起來你想爲每個div輸出'style'屬性來定義它的CSS定位。 – showdev 2014-10-01 17:13:30

回答

1

沒有你在哪裏實際分配座標給DIV。

像這樣:

//get number of rows for X,Y coords in the table 
while($row = mysqli_fetch_assoc($coord_result)){  
    //naming X,Y values 
    $x_pos = $row['x_coord']; 
    $y_pos = $row['y_coord'];  

    //draw a box with a DIV at its X,Y coord  
    echo "<div id='desk_box' style='position: absolute; 
             left: " . $x_pos . "px; 
             top: " . $y_pos . "px;'> 
      box here</div>";           
} //end while coord_result loop 

此代碼正在每個X/Y座標,並從父DIV的左/右上角絕對定位DIV,你在每個循環產生的座標。

+0

我做到了,他們走到左上角,我想他們在他們的X,Y軸 – mario 2014-10-01 17:18:24

+0

然後我真的不知道你在問什麼。此代碼將爲數據庫中的每組X/Y座標生成一個div,並根據頁面左上角的數據庫中的X/Y座標來定位它們。如果問題在於你需要從不同的角落獲得它們,則只需更新CSS,以便它們從右側或底部或任何需要的位置偏移。否則,您應該通過轉儲SQL結果來檢查數據,以確保數據庫與您期望的頁面內容相符。 – Mark 2014-10-01 17:23:08

+1

問題可能是「section_a」(假設它在CSS中有一些樣式),有趣的事情可能發生在絕對定位在另一個div內的div上,這取決於父div的設置。更何況,如果你正在使用某種框架,將其他樣式應用到你的元素。 – DragonYen 2014-10-01 17:36:00