我已经接管了一个PHP应用程序,它的代码相当混乱,所以在进行任何重大更改之前,我决定将其重写为MVC(CodeIgniter)。至于纯html
部分,我使用$this->load->view(file);
技术,但我不确定如何处理这样的事情:
echo "<tr>";
echo "<td class='"border szczegolyTd'">";
echo "Kamp.: ".$kampania[$kamp]['idProject'];
echo "<br />";
echo "<b>".$kampania[$kamp]['name']."</b><br />";
echo "<div class='szczegolyDiv'><a class='"pokaz szczegoly'" href='"?pokaz=".$kampania[$kamp]['idProject']."'">";
echo "SZCZEGÓŁY";
echo "</a></div>";
if (isset($kampania[$kamp]['timestamp'][$iloLeftCustomers-1])) echo "<br />Dane od: <br /><b>".$kampania[$kamp]['timestamp'][$iloLeftCustomers-1]."</b>";
echo "<br />do: <br /><b>".$kampania[$kamp]['timestamp'][0]."</b>";
//echo "<br />".$ilOstatnichRozmow;
polacz();
$querySpr = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) AS ile FROM lista WHERE user=".$_SESSION['loginid']." AND kampania=".$kampania[$kamp]['idProject'].""));
rozlacz();
if ($querySpr['ile']==0) {
echo "<div id='"".$kampania[$kamp]['idProject']."'" class='"tabDodaj'">DODAJ DO OBSERWOWANYCH</div>";
}else{echo "<div class='komunikatMasz'>Masz tę kampanię na liście.</div>";}
echo "</td>";
我是CodeIgniter(以及一般的MVC)的初学者,所以我不知道它的所有功能以及选择哪个。也许不可能将这两种技术完全分开 - 所以主要使用html
和转义php
脚本<? ?>
或使用php
和echo
html
部分更优雅?
您可以随时在模板文件中编写 html 并在其中插入 php 以循环或回显。
echo "<tr>";
echo "<td class='"border szczegolyTd'">";
echo "Kamp.: ".$kampania[$kamp]['idProject'];
echo "<br />";
可能是:
<tr>
<td class="border szczegolyTd">
Kamp.: <?php echo $kampania[$kamp]['idProject']; ?>
<br />
将代码放在这些PHP标签中实际上会触发调用。请注意,为了保持 html 总线代码的清洁,请确保您只在其中使用 echo、foreach、for 或 if。
在 CodeIgniter 中,您可以渲染视图文件并插入到"部分"视图中,然后在主模板中使用 TRUE 作为第三个参数回显它。这只会缓冲输出,而不是立即输出它。
$data['content'] = $this->load->view('ding/templatefile',$vars,TRUE);
真的是新手,请按照本教程进行操作,它很好&&信息丰富。
是的,这是可能的,最好的用途是短标签 + 等号 <strong><?=$variable?></strong>
它回显$variable
中的任何内容,无论何时使用foreach()
foreach($elements as $element) {
$string = "";
$string .= "new line" . $element->id . "<br>";
$string .= "line 2" . $element->name;
echo $string;
}
或者只是随心所欲地回声线
foreach($elements as $element) {
echo "new line" . $element->id . "<br>";
echo "line 2" . $element->name;
}
但请记住,在进入 Foreach 循环之前,请检查您是否有有效的$variable要通过。( empty()
, isset()
, $variable != FALSE
...
注意:如果在回显基本文本使用时需要条件
<strong><?=(condition) ? 'TRUE' : 'FALSE' ?></strong>
例
<strong><?=(isset($variable)) ? $variable : '' ?></strong>
我建议您阅读MVC工作原理的流程,但这应该为您指明正确的方向。
在控制器中,您可以实例化数据的模型,如下所示:
$this->load->model("lista");
然后
$data = $this->lista->getCountList($_SESSION['loginid'], $kampania[$kamp]['idProject']);
在 lista 模型中,您有以下函数:
getCountLista($loginId, $projectId)
这部分是做什么的:
return mysql_fetch_assoc(mysql_query("SELECT COUNT(*) AS ile FROM lista WHERE user=".$loginId." AND kampania=".$projectId.""));
然后将返回的数据传递给视图
$this->load->view(file, array("listData" => $data));
并在以下观点中:
$listaData[$kamp]['idProject']
它在视图中为视图中传递的数组中的每个项创建一个变量。
我建议您阅读有关 MVC 的文档。