php - Codeigniter:تمرير البيانات من وحدة التحكم لعرض





view controller (9)


تحتاج فقط إلى إنشاء مجموعة ، باستخدام Codeigniter الصحيح؟

مثال على وحدة تحكم:

$data['hello'] = "Hello, world";
$this->load->view('results_view', $data);

في الصفحة "results_view" ، يتعين عليك فقط:

<?php echo $hello;?>

[أوبس]: أنت يستطيع خلقت [دتس] ، فقط دفع إنتباه في الاسم وجعلت هو صفيف.

ملاحظات: لاستخدام البيانات ، استخدم مفتاح المصفوفة مع الصدى.

أرغب في تمرير $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 = array("title" => "Books", "status"=>"Read","author":"arshad","company":"3esofttech",

"الموضوع": "علوم الكمبيوتر") ؛

البيانات من الطراز إلى وحدة التحكم

$this->load->model('bookModel');
$result = $this->bookModel->getMoreDetailsOfBook();

**Add *$result* from model to *$data* array**  
$data['tableRows'] = $result;

بيانات $ من المراقب للعرض

$this->load->view('admin/head',$data);

وللاطلاع على طرق عرض الملف / user.php

<?php  echo $data;
 foreach($tableRows as $row){ echo
 $row['startData']; } ?>



لقد رأيت جميع الإجابات المذكورة أعلاه ، لذا فإليك ما أقوم به عندما يتعين عليّ تحميل البيانات من وحدة التحكم إلى وجهة نظري. لتمرير البيانات إلى طريقة العرض من وحدة التحكم:

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 . وإذا كنت ترغب في حلها ، فيمكنك القيام بذلك أيضًا.




لن يستدعي العرض بيانات "البيانات"

تتضمن وحدة التحكم فهرسًا نسبيًا (ليس متأكداً مما إذا كان هذا هو المصطلح الصحيح) للبيانات مثل "الأشياء" التي تبحث بالتالي عن $data['stuff']

كنت echo في الرأي حتى: echo $stuff; لا echo $data;

أنا av جود كود متواضع لكن حقاً أحب CodeIgniter لذا إسمح لي إذا أنا عندي هذا الحمار حول tit.

شيء آخر - بالتأكيد وظيفة المنشئ الخاص بك هو جزء من النفايات. كل ذلك تحميل المكتبات والمساعدين يتم مع ملف autoload.




حسنا لذلك أنا في النهاية حلها. يجب أن يكون لديك بالفعل نموذج (يساعد الكثير)

في نموذجك ، افعل شيئًا مثل

نموذج

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

الآن إذا كان لديك أكثر من اسم معرف اسم استطلاع # يمكنك إضافة في صفيف. الآن في جهاز التحكم الخاص بك القيام به

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

وأخيرا في وضع العرض

<? echo $a["id"]; ?>

هذا هو مساعدة كبيرة. أنا أحسب ذلك من خلال الاختبار ويعمل لي.




في وحدة تحكم:

$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



بعبارات بسيطة ،

تصبح $ data ['a'] في وحدة التحكم $ a في العرض. (لن تظهر بيانات $ في طريقة العرض الخاصة بك ، سيصبح المؤشر متاحًا فقط)

على سبيل المثال

Controller:    
$data['hello']='hellow world';

view:
echo $hello;



في جهاز التحكم الخاص بك يمكنك تمرير

$data['poll'] = "Your results";

في وجهة نظرك يمكنك الاتصال

echo $poll; 



عليك أولاً فك شفرة json:

$array = json_decode($the_json_code);

ثم بعد فك شفرة json عليك أن تفعل foreach

foreach ($array as $key => $jsons) { // This will search in the 2 jsons
     foreach($jsons as $key => $value) {
         echo $value; // This will show jsut the value f each key like "var1" will print 9
                       // And then goes print 16,16,8 ...
    }
}

إذا كنت تريد شيئا محددا فقط اسأل عن مفتاح مثل هذا. ضع هذا بين آخر foreach.

if($key == 'var1'){
 echo $value;
}




php codeigniter view controller