Siddharth Srivastva
Siddharth Srivastva

Reputation: 965

Correctly Passing data from Controller to View CodeIgniter

This question may be asked numerous times but I am facing difficulty in doing so. var_dump($lex_post_data); works fine on controller

My Controller code

try{
                // need for the manage functionality to be initialized.
                $manage_mode        = FALSE;
                $appointment   = array();
                $provider      = array();
                $customer      = array();
                $lex_post_data = $this->input->post('lexname');


            var_dump($lex_post_data);
            // Load the book appointment view.
            $view = array (
                'available_services'    => $available_services,
                'available_providers'   => $available_providers,
                'company_name'          => $company_name,
                'manage_mode'           => $manage_mode,
                'appointment_data'      => $appointment,
                'provider_data'         => $provider,
                'customer_data'         => $customer,
                'post_data'             => $lex_post_data
            );

        } catch(Exception $exc) {
            $view['exceptions'][] = $exc;
        }

        $this->load->view('appointments/book', $view);

View Code:

<script type="text/javascript">
    var GlobalVariables = {
        availableServices   : <?php echo json_encode($available_services); ?>,
        availableProviders  : <?php echo json_encode($available_providers); ?>,
        baseUrl             : <?php echo '"' . $this->config->item('base_url') . '"'; ?>,
        manageMode          : <?php echo ($manage_mode) ? 'true' : 'false'; ?>,
        appointmentData     : <?php echo json_encode($appointment_data); ?>,
        providerData        : <?php echo json_encode($provider_data); ?>,
        customerData        : <?php echo json_encode($customer_data); ?>,
        lexpostData         : <?php echo json_encode($lex_post_data); ?>,
        csrfToken           : <?php echo json_encode($this->security->get_csrf_hash()); ?>
    };
    console.log(GlobalVariables);
    var EALang = <?php echo json_encode($this->lang->language); ?>;
    var availableLanguages = <?php echo json_encode($this->config->item('available_languages')); ?>;

    $(document).ready(function() {
        FrontendBook.initialize(true, GlobalVariables.manageMode); 
        // GeneralFunctions.centerElementOnPage($('#book-appointment-wizard'));
        GeneralFunctions.enableLanguageSelection($('#select-language'));
    });
</script>

Ques1: Is this the correct way of accessing the values sent from controller. Ques2: On console.log(GlobalVariables); I am getting

lexpostData : null 

What I am doing wrong.

Please guide

EDIT

SOLVED & CLOSED: I was trying to get differnt name varriable on view. Had to use

lexpostData         : <?php echo json_encode($post_data); ?>,

instead of

lexpostData         : <?php echo json_encode($lex_post_data); ?>,

Upvotes: 1

Views: 73

Answers (1)

Saty
Saty

Reputation: 22532

In controller you are passing $lex_post_data in post_data

'post_data'         => $lex_post_data

So in view instead of

 <?php echo json_encode($lex_post_data); ?>

Use

<?php echo json_encode($post_data); ?>

Upvotes: 1

Related Questions