[英]can't send data from controller to view in a codeIgniter project
我正在嘗試將數據從控制器發送到視圖。 我是這樣做的:在控制器中:
function getAllProjects()
{
$where= array('id_user'=>$this->session->userdata('id_user'));
$result=$this->expenses_model->get_all('projets', $where);//get_all returns an array
echo json_encode ($result);
return $result;
}
function index (){
$data['all_projects']= $this->getAllProjects();
$this->session->set_userdata('id_user', 28);
$this->load->view('layout/public/header');
$this->load->view('content/public/profil/modules/expenses',$data);
$this->load->view('layout/public/footer');
}
在控制器中回顯json_encode $ data返回正確的結果),但我不知道如何在視圖中顯示它。 我嘗試過:(在視圖中)
<label><strong>Sur le projet</strong></label>
<select class="span4" id="projet" name="projet">
<?php
if (isset($all_projects) && ! empty($all_projects))
{ echo "there is some projects"; //is not printed
foreach ($all_projects as $project){
echo "<option value=".$project['id_projet'].">".$project['titre']."</option>"; }
else {
echo "<option value='0'>No projects</option>";
}
但是在“項目”下拉列表中沒有顯示任何內容。我在做什么錯? 有人可以幫我嗎?
mysql_query()
返回一個資源 ,您將其交給$this->load->view();
作為第二個參數。 如果深入研究底層CodeIgniter源,您會發現CodeIgniter不知道如何將Resource作為此參數來處理-僅數組和對象。
請不要使用mysql_query()
及其朋友。 根據PHP官方文檔 :
不鼓勵使用此擴展名。 相反,應使用MySQLi或PDO_MySQL擴展。
更為重要的是,如果在PHP上使用CodeIgniter,則將數據庫類與Active Record類結合使用以執行數據庫查詢。 地獄,甚至使用Datamapper ORM-請不要使用mysql_query()
或朋友。
我像這樣更改了foreach並且它起作用了:
foreach ($all_projects as $project)
{
echo "<option value=".$project->id_projet.">".$project->titre."</option>";
}
謝謝您的回答
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.