2010-09-14 16 views
0

我有一個php函數,它動態查詢數據庫並返回6個表。我想將這些表格中的每一個都作爲php數組元素存儲,通過JSON/AJAX將數組傳回,並將每個表格顯示爲頁面上的單獨表格。我編寫了測試代碼來完成所有這些。測試代碼接收一組HTML字符串並將其傳回。HEREDOC中的PHP函數 - 返回到標籤佈局

我的問題是,在我的測試代碼,我用非常簡單的字符串:

$d1 = <<<END 

<table border="1"> 
<tr> 
<td>row 1, cell 1</td> 
<td>row 1, cell 2</td> 
</tr> 
<tr> 
<td>row 2, cell 1</td> 
<td>row 2, cell 2</td> 
</tr> 
</table> 

END; 

$d2 = "<div id='#f-2'>Message 2</div>"; 

其實,我有什麼是一大堆的PHP代碼通過SQL結果中循環,並構建HTML表:

while($row=pg_fetch_array($result, null, PGSQL_ASSOC)) 
    { 

    if(!$written_header) 
    { 
     echo "<table class=\"fancy\" id=\"ticket_list_table\"><thead><tr><th>ID</th><th>Hardware Name</th><th>Serial No.</th><th>IP Address</th><th>Username</th><th>Password</th></tr></thead><tbody>"; 
     $written_header = true; 
    } 

    echo "<tr><td>",$row[id],"</td><td>",'$row[hardwarename]',"</td><td>",'$row[serialnumber]',"</td><td>",'$row[ipAddress]',"</td><td>",'$row[username]',"</td><td>",'$row[password]',"</td></tr>"; 

    } 

    pg_free_result($result); 

    if($written_header) 
    { 
    // close the table body and table object 
    echo "</tbody></table>"; 
    } 
    else 
    { 
    echo "No results."; 
    } 
    echo "</div>"; 

我怎麼可以存儲這更復雜的東西在PHP變量,這樣我可以再傳遞迴的數組元素?

回答

0

不知道是否理解正確的話,但

$result = "<table>"; 
$result .= "<tr>"; 
$result .= "<trd>"; 

此。=符號不斷添加新的數據前值的結束。

+0

是的,你沒明白。我基本上拿出所有的回聲調用,並通過使用。=運算符通過字符串建立每個HTML字符串塊。它工作得很好,我不能相信我昨天沒有想到。談論解決問題。謝謝!代碼如下: – Damoven 2010-09-15 12:07:53

0

這是解決我自己的特殊問題:

while($row=pg_fetch_array($result, null, PGSQL_ASSOC)) 
    { 

    if(!$written_header) 
    { 
     $d1 = "<table class=\"fancy\" id=\"ticket_list_table\"><thead><tr><th>ID</th><th>Hardware Name</th><th>Serial No.</th><th>IP Address</th><th>Username</th><th>Password</th></tr></thead><tbody>"; 
     $written_header = true; 
    } 

    $d1 = $d1."<tr><td>$row[id]</td><td>$row[hardwarename]</td><td>$row[serialnumber]</td><td>$row[ipAddress]</td><td>$row[username]</td><td>$row[password]</td></tr>"; 

    } 

    pg_free_result($result); 

    if($written_header) 
    { 
    // close the table body and table object 
    $d1 = $d1."</tbody></table>"; 
    } 
    else 
    { 
    $d1 = $d1."No results."; 
    } 
+0

一個真正的解決方案不是使用意大利麪代碼,將數據庫調用與HTML混合 – 2010-09-15 12:38:03