我接手了一个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
和{{1}更为优雅} echo
部分?
答案 0 :(得分:1)
你总是可以在模板文件中编写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为第3个参数在主模板中回显它。这只是在输出时立即缓冲输出。
$data['content'] = $this->load->view('ding/templatefile',$vars,TRUE);
答案 1 :(得分:0)
如果你真的是新手,请按照tutorial这个不错的&amp;&amp;信息。
是的,有可能,最好的用途是短标记+等号<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循环之前,请检查一下你是否有有效的$变量。 (empty()
,isset()
,$variable != FALSE
...)
请注意: 如果您在回应基本文本时需要条件
<strong><?=(condition) ? 'TRUE' : 'FALSE' ?></strong>
例如
<strong><?=(isset($variable)) ? $variable : '' ?></strong>
答案 2 :(得分:0)
我建议你去了解一下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']
它在视图中传递的数组的视图foreach项中创建一个变量。
我建议您阅读有关MVC的文档。