0

コントローラーからビューにデータを送信しようとしています。これが私が行う方法です: コントローラーで:

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');
                     }

echo 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>";
                               }

しかし、ドロップダウンリストの「プロジェクト」には何も表示されません。何が間違っていますか? 誰か助けてくれませんか?

4

2 に答える 2

0

私はこのように foreach を変更しましたが、うまくいきました:

foreach ($all_projects as $project)
    {
            echo  "<option value=".$project->id_projet.">".$project->titre."</option>";
                                    }

回答ありがとうございます

于 2012-10-02T08:54:39.817 に答える
0

mysql_query()リソースを返し、それを$this->load->view();2 番目のパラメーターとして渡します。基礎となる CodeIgniter ソースを掘り下げると、CodeIgniter がこのパラメーターとしてリソースを処理する方法を認識していないことがわかります。配列とオブジェクトのみです。

友達同士でのご利用はご遠慮くださいmysql_query()PHPの公式ドキュメントによると:

この拡張機能の使用はお勧めできません。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。

これよりも重要なのは、PHP の上で CodeIgniter を使用している場合は、データベース クラスをActive Record クラスと組み合わせて使用​​して、データベース クエリを実行することです。地獄、Datamapper ORMmysql_query()を使用しても -や友達を使用しないでください。

于 2012-10-01T17:39:20.393 に答える