$data
poll
という名前のコントローラーからresults_view
しかし、未定義の変数エラーが発生しています。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Poll extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('form');
}
public function index()
{
$this->load->view('poll_view',$data);
}
public function vote()
{
echo "Voting Successfull";
$this->db->insert('votes',$_POST);
}
public function results()
{
echo "These are the results";
//$query = $this->db->get('votes');
$data = "hello";
$this->load->view('results_view', $data);
}
}
Results_view.php
<html>
<?php echo $data; ?>
</html>
$data
は配列またはオブジェクトである必要があります。 http://codeigniter.com/user_guide/general/views.html
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
$this->load->view('results_view', $data);
results_view.php
<html>
<?php
//Access them like so
echo $title.$heading.$message; ?>
</html>
簡単な言葉で、
コントローラの$ data ['a']は、ビューでは$ aになります。 ($ dataはビューに存在せず、インデックスのみが利用可能になります)
例えば.
Controller:
$data['hello']='hellow world';
view:
echo $hello;
配列を作成するだけで、codeigniterを使用できますか?
コントローラーの例:
$data['hello'] = "Hello, world";
$this->load->view('results_view', $data);
ページ「results_view」では、次のことを行うだけです。
<?php echo $hello;?>
Obs:n個のデータを作成し、名前に注意して配列にすることができます。
Obs²:データを使用するには、エコーのある配列のキーを使用します。
ビューはデータを「データ」と呼びません
コントローラには、データの連想インデックス(正しい命名法かどうかはわかりません)が含まれます。たとえば、 'stuff'のように見える$data['stuff']
あなたはビューでecho
だから:echo $stuff;
ではなくecho $data;
私は非常に低レベルのコードフィドラーですが、CodeIgniterが本当に好きなので、このシジュウカラについてお尻を持っているならすみません。
もう1つ-コンストラクター関数は確かに少し無駄です。ライブラリとヘルパーのロードはすべて、自動ロードファイルを使用して行われます。
プロパティ_$data = []
_;を作成できます。 CI_Controller(path:system/core/Controller.php)内で、ビューに表示するすべてのデータを保存します。 Uは、CI_Controllerの言語、メニューなどの一般的なデータをロードできます。また、コントローラーで表示するための特別なデータを追加できます。 (例:_$this->data['message'] = "Hello world";
_)最後に、ビューのロード時に表示する_$this->data
_を渡すことができます(例:$this->load->view('view_name',$this->data);
)
これがお役に立てば幸いです
このようにすることができます
controllerで定義された配列
$data['hello'] = "hello";
そして変数をviewに渡します
echo $hello;
コントローラー内:
$data["result"] = $this->login_model->get_login(); // Get array value from DB..
$this->load->view('login-form',$data); // Pass the array to view
ビューで:
print_r($result); // print the array in view file
わかりましたので、ようやく解決しました。あなたは本当にモデルを持っているべきです(それは大いに役立ちます)
あなたのモデルで次のようなことをしてください
モデル
class poll_model extends CI_MODEL {
function __construct() {
$this-load->database();
}
function get_poll {
$this->db->query("SELECT * FROM table");
$row = $query->row();
$obj = array(
'id' => $row->id
);
return $obj;
}
}
IDが複数の場合、今度はpoll#という名前があれば、配列に追加できます。 controller do
class Poll extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper('form');
$this->load->model('poll_model');
}
public function index()
{
$data["a"] = $this->poll_model->get_poll();
$this->load->view('poll_view',$data);
}
そして最後に[〜#〜] view [〜#〜] put
<? echo $a["id"]; ?>
これは大きな助けです。私はテストによってそれを理解し、それは私のために機能します。
合格したら
$data = your code
$this->load->view('your-page', $data);
ビューのデータを取得します
<?php echo $data;?>
Ciはこのパターンを理解していなかったため、機能しません。あなたがこれを試すことができるように、ビューにコントローラから値を渡したい場合-
コントローラー-
$data['any-name'] = your values;
$this->load->view('your-page', $data);
ビューでこのデータを取得するには-
<?php echo $any-name;?>
これがお役に立てば幸いです。
あなたのコントローラーで渡すことができます
$data['poll'] = "Your results";
あなたの見解では、あなたは呼び出すことができます
echo $poll;
コントローラ内:
パブリック関数product(){
$data = array("title" => "Books", "status"=>"Read","author":"arshad","company":"3esofttech",
"subject": "コンピューターサイエンス");
モデルからコントローラーへのデータ
$this->load->model('bookModel');
$result = $this->bookModel->getMoreDetailsOfBook();
**Add *$result* from model to *$data* array**
$data['tableRows'] = $result;
コントローラーからビューへの$ data
$this->load->view('admin/head',$data);
およびビューファイルでアクセスするには views/user.php
<?php echo $data;
foreach($tableRows as $row){ echo
$row['startData']; } ?>
の代わりに
$data = "hello";
$this->load->view('results_view', $data);
行う
$data['hello'] = 'hello';
$this->load->view('results_view', $data);
コントローラーファイルとコントローラーでdata having hello asstringをresults_viewと単にアクセスできるファイルを表示する
echo $hello;
上記のすべての答えを見てきましたので、コントローラーからビューにデータをロードする必要がある場合の対処方法を次に示します。データをコントローラーからビューに渡すには:
public function your_controller(){
// Your Necessary Code
// You have the $data, $data2, $data3 to post to the view.
$this->load->view('your_view_directory or view_page',['data'=>$data, 'data2'=>$data2, 'data3'=>$data3... so on ]);
}
ビュー側では、そのデータを簡単に取得できます。表示するにはecho
、print
、print_r
。そして、それをループしたい場合は、同様にそれを行うことができます。