在codeigniter中传递JSON数据

时间:2012-08-27 03:42:45

标签: php json codeigniter

问候我有这个声明,它接受我的结果数组并使用json_encode显示在我的AJAX表单上,但是现在我想将数据作为$ data传递给我的Templatebuilder函数,因为我将使用搜索作为更大模板的一部分。对于我的ajax搜索,这是我得到的错误。 未定义变量:ajax_search.php中的结果

这一切都在一个控制器内完成。

if ( $this->input-> is_ajax_request())
    {
        $this->output->set_header("Cache-Control: no-cache, must-revalidate");
        $this->output->set_header("Expires:Mon, 4 Apr 1994 04:44:44 GMT");
        $this->output->set_header("Content-type:application/json");

        echo json_encode($results);

    }

然后我希望使用以下声明将数据发送到我的templatebuilder:

 echo $this->Templatebuilder('master', $data);

这是我的模板构建函数

private function Templatebuilder ($view, $data) {
 $master_data['page1'] = $this->load->view('page1', $data, true);
 $master_data['ajax_search'] = $this->load->view('ajax_search',  $data, true);
 return $this->load->view('master', $master_data, true);

最后是我的ajax_search页面

<form method="post" action="<?php echo current_url(); ?>">
    <fieldset>
    <label for = "search"> Seachss Query:</label>
    <input type="text" name="search" id="search"/>
    <input type="submit" value="Search!" />

    </fieldset>

        <fieldset id= "results">
            <?php if (isset($results) AND count($results) ); ?>
            <ul>

                <?php foreach ($results as $result); ?>

                    <li>
                    <span class="Course_Name"> <?php echo $result['course_name_highlighted']; ?> </span> &ndash;
                    <span class="First_Name"> <?php echo $result['FirstName']; ?> </span> 
                    <span class="Last_Name"> <?php echo $result['LastName']; ?> </span> &ndash;
                    <span class="Course_ID"> <?php echo $result['COURSE_ID']; ?> </span> &ndash;
                    <input type="submit" value="Add Course" />


                    </li>



            </ul>


            </fieldset>

</form>

1 个答案:

答案 0 :(得分:0)

添加exit()

echo json_encode($results);
exit(); // add exit