PHP视图 - 控制器类模型

问题描述:

我有一个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

如果你知道你的变量的结构(可能是一个数组),你可以创建一个辅助函数,你可以从你的视图层调用。该函数将采用您的原始变量并将其输出为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

要具有很好看表,你可以使用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;