2013-05-09 153 views
0

我有一個PHP視圖 - 控制器 - 類模型的開放式問題。PHP視圖 - 控制器類模型

說的是,我們必須在控制器中使用邏輯循環來使用類中的方法從數據庫中檢索數據行。

但是,在任何時候,我都可以設置1個PHP變量來顯示內容。我需要幫助來了解如何從控制器以良好的HTML格式顯示數據。

我知道一種方法是使用JavaScript

$(#div_id).html(variable_embedded_html_coding); 

所有的建議是非常讚賞。

+0

我想你正在考慮網格控制? – 2013-05-09 11:58:38

+0

我不明白你爲什麼只能設置1個變量?控制器將變量分配給視圖,以便它可以更多。你使用自己的框架?同時檢查這個鏈接http://phpgrid.com你可以通過JSON或XML傳遞許多變量 – Robert 2013-05-09 11:58:56

+0

這只是一個例子。它假設通過Ajax輸出值。 – 2013-05-10 00:28:48

回答

0

如果你知道你的變量的結構(可能是一個數組),你可以創建一個輔助函數,你可以從你的視圖層調用。該函數將採用您的原始變量並將其輸出爲HTML表格。

例如是這樣的:

tabHelper.php 

function print_tab($var) 
{ 
    $tab = '<table>'."\n"; 
    foreach ($var as $row) { 
     $tab .= '<tr><td>'.$row.'</td></tr>'."\n"; 
    } 

    $tab .= '</table>'; 
    echo $tab; 
} 

,然後在你看來,你會打電話:

<?php include_once ('tabHelper.php'); ?> 

... 

<?php print_tab($my_variable); ?> 

你甚至可以延長幫手,能夠通過附加屬性,如類,ID等

+0

是tabHelper.php的獨立文件?我可以把這個print_tab函數放在我的控制器中嗎?我如何將它與我的控制器文件一起使用? – 2013-05-09 12:14:50

+0

這只是一個示例代碼。你可以把'print_tab'函數放在你想要的任何地方;)如果你想堅持使用MVC,儘管你應該保持控制器邏輯和視圖邏輯分離,所以你不應該在你的控制器裏面或者一起使用打印功能。在控制器內部,您可以使用數據準備陣列,並在視圖中將其打印到瀏覽器中。 – 2013-05-09 13:41:45

1

要具有很好看錶,你可以使用phpgrid.com

Php grid

將消息從php發送到具有多個變量的js。您可以使用例如JSONxml。要在PHP中將數組編碼爲json格式,請使用json_encode();在Ajax中,您應該將您的數據類型更改爲JSON

所以從側面JS如果你想在你的位子使用`

`你應該做的PHP(script.php的)像這樣

var request = $.ajax({ 
url: "script.php", 
type: "POST", 
data: {id : menuId}, //it'll be in $_POST['id'] 
dataType: "json" 
}).done(function(msg){ 
    $("#your_div").html(msg.html); 
    //msg.othervariable is also possible here 
}); 

$arr = array('html'=> "<p>asdasd</p>", othervariable=>"it works"); 
echo json_encode($arr);exit;