首页 > 解决方案 > Codeigniter - JSON 类别

问题描述

我想用 JSON 显示包类别。我有 2 张桌子。第一个是Package Table,第二个是packageService。第一个表是包表。我从包表中获取所有数据。每个包都有自己的功能(服务)。我在包视图中显示此功能包。我想从 packageServices 获取所有功能(服务)。但是我想通过 packageServiceId 从带有 JSON 的 packageService 表中获取此功能,例如 [1][2] 等。在 Package Table 中有一个列作为 packageService,在 packageService 表上等于 packageServiceId。如何使用 JSON 将编辑页面上的帖子表单中的数据写入打包表?

包控制器:

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Package extends CI_Controller {

        public function __construct()

        {

            parent::__construct();

            $this->load->model('service_model');

        }

        public function index()
        {

            $this->lang->load('content', $this->session->userdata('userLang'));

            //$viewData['packs'] = $this->db->get("package")->result();

            $this->db->order_by('packageId','DESC');
            $viewData['packs_P'] = $this->db->get_where('package',array('packageNameEn'=> 'Platinum'),1)->result();

            $this->db->order_by('packageId','DESC');
            $viewData['packs_S'] = $this->db->get_where('package',array('packageNameEn'=> 'Silver'),1)->result();

            $this->db->order_by('packageId','DESC');
            $viewData['packs_G'] = $this->db->get_where('package',array('packageNameEn'=> 'Gold'),1)->result();

            $this->db->order_by('packageId','DESC');
            $package_n = $this->input->post('packageNameEn');
            $viewData['packs'] = $this->db->get_where('package',array('packageNameEn'=> $package_n),1)->result();

            $this->load->view('package', $viewData);
        }

        public function edit($packageId)
        {

            $this->lang->load('content', $this->session->userdata('userLang'));

            $viewData['packages'] = $this->db->where("packageId", $packageId)->get("package")->result();

            $viewData['packs'] = $this->db->get("package")->result();

            $this->load->view('package_edit', $viewData);
        }

        public function update($packageId) {



            $this->lang->load('content', $this->session->userdata('people_lang'));

            $data = array (

                "packageEditUser" => $this->input->post("packageEditUser"),

                "packageRev" => $packageId,

                "packageNameEn" => $this->input->post("packageNameEn"),

                "packagePrice" => $this->input->post("packagePrice"),

                "packagePriceCut" => $this->input->post("packagePriceCut"),

                "packageActive" => $this->input->post("packageActive"),

                "packageEditDate" => date('Y-m-d H:i:s'),

            );

            $update = $this->db->insert("package", $data);

            $viewData['services'] = $this->service_model->update_services($packageId);

            $this->load->view('package',$viewData);

            if($update) {

                redirect(base_url("package"));

            }else {

                echo "Hata!";

            }

        }


            public function add()
        {

            $this->lang->load('content', $this->session->userdata('userLang'));

            $viewData['packages'] = $this->db->get("package")->result();

            $this->load->view('package_add', $viewData);
        }

        public function insert() {



            $this->lang->load('content', $this->session->userdata('people_lang'));

            $this->load->view('package');

            $data = array (

                "packageAddUser" => $this->input->post("packageAddUser"),

                "packageNameEn" => $this->input->post("packageNameEn"),

                "packagePrice" => $this->input->post("packagePrice"),

                "packagePriceCut" => $this->input->post("packagePriceCut"),

                "packageActive" => $this->input->post("packageActive"),

                "packageAddDate" => date('Y-m-d H:i:s'),

                "packageEditDate" => date('Y-m-d H:i:s'),

                "packageRev" => '0'

            );

            $insert = $this->db->insert("package", $data);

            if($insert) {

                redirect(base_url("package"));

            }else {

                echo "Hata!";

            }

        }



    }
    ?>

包装视图:

<section id="main-content">
    <section class="wrapper site-min-height">
        <!-- page start-->
        <div class="row">
            <!--price start-->
            <div class="text-center feature-head">
                <h1> PACKAGES </h1>
                <p>Choose Your Special Package Plan. </p>
            </div>
            <?php foreach($packs_S as $get) { ?>
            <div class="col-lg-3 col-sm-3">
                <div class="pricing-table <?php if ($get->packageNameEn == 'Platinum') { echo 'most-popular'; } ?>">
                    <div class="pricing-head">
                        <h1> <?php echo $get->packageNameEn; ?> </h1>
                        <h5><del>€ <?php echo $get->packagePrice ?></del></h5>
                        <h2><span class="note">€&lt;/span><?php echo $get->packagePriceCut ?> </h2>

                    </div>
//json data will write here:
                    <ul class="list-unstyled">
                        <li>8 hours coverage</li>
                        <li>500 digital images</li>
                        <li>100 A3 Hard Copy</li>
                        <li>Bridal portrait with 11X14</li>
                        <li>Engagement portrait with 11X14</li>
                        <li>Income Tax included</li>
                    </ul>
//json data will write here/

                    <div class="price-actions">
                        <a class="btn" href="javascript:;">Get Now</a>
                        <a class="btn" href="<?php echo base_url("package/edit/$get->packageId"); ?>">Edit</a>
                    </div>
                </div>
            </div>
            <?php } ?>
            <?php foreach($packs_G as $get) { ?>
                <div class="col-lg-3 col-sm-3">
                    <div class="pricing-table <?php if ($get->packageNameEn == 'Platinum') { echo 'most-popular'; } ?>">
                        <div class="pricing-head">
                            <h1> <?php echo $get->packageNameEn; ?> </h1>
                            <h5><del>€ <?php echo $get->packagePrice ?></del></h5>
                            <h2><span class="note">€&lt;/span><?php echo $get->packagePriceCut ?> </h2>

                        </div>
                        <ul class="list-unstyled">
                            <li>8 hours coverage</li>
                            <li>500 digital images</li>
                            <li>100 A3 Hard Copy</li>
                            <li>Bridal portrait with 11X14</li>
                            <li>Engagement portrait with 11X14</li>
                            <li>Income Tax included</li>
                        </ul>
                        <div class="price-actions">
                            <a class="btn" href="javascript:;">Get Now</a>
                            <a class="btn" href="<?php echo base_url("package/edit/$get->packageId"); ?>">Edit</a>
                        </div>
                    </div>
                </div>
            <?php } ?>
            <?php foreach($packs_P as $get) { ?>
                <div class="col-lg-3 col-sm-3">
                    <div class="pricing-table <?php if ($get->packageNameEn == 'Platinum') { echo 'most-popular'; } ?>">
                        <div class="pricing-head">
                            <h1> <?php echo $get->packageNameEn; ?> </h1>
                            <h5><del>€ <?php echo $get->packagePrice ?></del></h5>
                            <h2><span class="note">€&lt;/span><?php echo $get->packagePriceCut ?> </h2>

                        </div>
                        <ul class="list-unstyled">
                            <li>8 hours coverage</li>
                            <li>500 digital images</li>
                            <li>100 A3 Hard Copy</li>
                            <li>Bridal portrait with 11X14</li>
                            <li>Engagement portrait with 11X14</li>
                            <li>Income Tax included</li>
                        </ul>
                        <div class="price-actions">
                            <a class="btn" href="javascript:;">Get Now</a>
                            <a class="btn" href="<?php echo base_url("package/edit/$get->packageId"); ?>">Edit</a>
                        </div>
                    </div>
                </div>
            <?php } ?>
            <?php foreach($packs as $get) { ?>
                <div class="col-lg-3 col-sm-3">
                    <div class="pricing-table <?php if ($get->packageNameEn == 'Platinum') { echo 'most-popular'; } ?>">
                        <div class="pricing-head">
                            <h1> <?php echo $get->packageNameEn; ?> </h1>
                            <h5><del>€ <?php echo $get->packagePrice ?></del></h5>
                            <h2><span class="note">€&lt;/span><?php echo $get->packagePriceCut ?> </h2>

                        </div>
                        <ul class="list-unstyled">
                            <li>8 hours coverage</li>
                            <li>500 digital images</li>
                            <li>100 A3 Hard Copy</li>
                            <li>Bridal portrait with 11X14</li>
                            <li>Engagement portrait with 11X14</li>
                            <li>Income Tax included</li>
                        </ul>
                        <div class="price-actions">
                            <a class="btn" href="javascript:;">Get Now</a>
                            <a class="btn" href="<?php echo base_url("package/edit/$get->packageId"); ?>">Edit</a>
                        </div>
                    </div>
                </div>
            <?php } ?>
        </div>
        <!-- page end-->
    </section>
</section>
<!--main content end-->

包编辑视图:

<form class="cmxform form-horizontal tasi-form" id="signupForm" enctype="multipart/form-data" method="post" action="<?php echo base_url("package/update/$get->packageId"); ?>">

                            <?php } ?>

                            <!-- Hidden Classes -->

                            <div class="form-group" hidden>

                                <label class="col-sm-2 col-sm-2 control-label">The User Who Edit</label>

                                <div class="col-sm-10">

                                    <input type="text" name="packageEditUser" class="form-control" value="<?php  echo $this->session->userdata('people_id'); ?>" readonly>

                                </div>

                            </div>

                            <div class="form-group" hidden>

                                <label class="col-sm-2 col-sm-2 control-label">Rev Id</label>

                                <div class="col-sm-10">

                                    <?php foreach($packages as $get) { ?>

                                    <input type="text" name="packageRev" class="form-control" value="<?php echo $get->packageId; ?>" readonly>

                                    <?php } ?>

                                </div>

                            </div>

                            <!-- / Hidden Classes -->



                            <div class="form-group ">

                                <label for="username" class="control-label col-lg-2">Package Name: </label>

                                <div class="col-lg-10">

                                    <?php foreach($packages as $get) { ?>

                                        <input class=" form-control" type="text" value="<?php echo $get->packageNameEn; ?>" readonly />

                                    <?php } ?>

                                </div>

                            </div>





                            <!-- Basic select -->

                            <div class="form-group">

                                <label class="control-label col-lg-3">Package Name <span class="text-danger">*</span></label>

                                <div class="col-lg-9">

                                    <?php foreach($packages as $get) { ?>

                                        <input type="text" name="packageNameEn" class="form-control" placeholder="Package Name" value="<?php echo $get->packageNameEn; ?>">

                                    <?php }?>

                                </div>

                            </div>

                            <!-- /basic select -->

                            <div class="form-group">
                                <label class="col-sm-2 control-label col-lg-2" for="inputSuccess">Services:</label>
                                <div class="col-lg-6">
                                    <div class="checkboxes">
                                        <label class="label_check" for="checkbox-01">
                                            <input name="sample-checkbox-01" id="checkbox-01" value="1" type="checkbox" /> I agree to the terms &#38; conditions.
                                        </label>
                                        <label class="label_check" for="checkbox-02">
                                            <input name="sample-checkbox-02" id="checkbox-02" value="1" type="checkbox" /> Please send me regular updates. </label>
                                        <label class="label_check" for="checkbox-03">
                                            <input name="sample-checkbox-02" id="checkbox-03" value="1" type="checkbox" /> This is nice checkbox.</label>
                                        <label class="label_check" for="checkbox-04">
                                            <input name="sample-checkbox-04" id="checkbox-04" value="1" type="checkbox" /> I agree to the terms &#38; conditions.
                                        </label>
                                        <label class="label_check" for="checkbox-05">
                                            <input name="sample-checkbox-05" id="checkbox-05" value="1" type="checkbox" /> Please send me regular updates. </label>
                                        <label class="label_check" for="checkbox-06">
                                            <input name="sample-checkbox-06" id="checkbox-06" value="1" type="checkbox" /> This is nice checkbox.</label>
                                        <label class="label_check" for="checkbox-07">
                                            <input name="sample-checkbox-07" id="checkbox-07" value="1" type="checkbox" /> I agree to the terms &#38; conditions.
                                        </label>
                                        <label class="label_check" for="checkbox-08">
                                            <input name="sample-checkbox-08" id="checkbox-08" value="1" type="checkbox" /> Please send me regular updates. </label>
                                        <label class="label_check" for="checkbox-09">
                                            <input name="sample-checkbox-09" id="checkbox-09" value="1" type="checkbox" /> This is nice checkbox.</label>
                                        <label class="label_check" for="checkbox-10">
                                            <input name="sample-checkbox-10" id="checkbox-10" value="1" type="checkbox" /> This is nice checkbox.</label>

                                    </div>
                                </div>

                            </div>

                            <div class="form-group">

                                <div class="col-lg-6">

                                    <h5>Package Price:</h5>

                                    <div class="input-group m-bot15">

                                        <span class="input-group-addon"><i class="fas fa-euro"></i></span>

                                        <?php foreach($packages as $get) { ?>

                                            <input type="text" name="packagePrice" data-mask="€ 999.99" class="form-control" value="<?php echo $get->packagePrice; ?>">

                                        <?php }?>

                                    </div>

                                </div>

                                <div class="col-lg-6">

                                    <h5>Discounted Price:</h5>

                                    <div class="input-group m-bot15">

                                        <span class="input-group-addon"><i class="fas fa-euro"></i></span>

                                        <?php foreach($packages as $get) { ?>

                                            <input type="text" name="packagePriceCut" data-mask="€ 999.99" class="form-control" value="<?php echo $get->packagePriceCut; ?>">

                                        <?php }?>

                                    </div>

                                </div>

                            </div>



                            <!-- Basic select -->

                            <div class="form-group">

                                <label class="control-label col-lg-3">Status <span class="text-danger">*</span></label>

                                <div class="col-lg-9">

                                    <select name="packageActive" class="form-control">

                                        <?php foreach($packages as $get) { ?>

                                            <option value="<?php echo $get->packageActive; ?>" readonly><?php if($get->packageActive == 1) {echo 'Active';} else {echo 'Deactive';} ?></option>

                                        <?php }?>

                                        <option value="1">Active</option>

                                        <option value="2">Deactive</option>

                                    </select>

                                </div>

                            </div>

                            <!-- /basic select -->



                            <div class="form-group">

                                <div class="col-lg-offset-2 col-lg-10">

                                    <button class="btn btn-success" type="submit">Edit Package</button>

                                    <button class="btn btn-default" type="reset">Reset</button>

                                </div>

                            </div>

                        </form>

标签: javascriptphpjsoncodeigniter

解决方案


在 codeingitor 中,您可以像这个例子一样以 JSON 的形式获取表格数据

在模型中

function function_table_name(){
    $query = $this->db->get('table_name');
     return  $query->result();
}

在控制器中

 public function employees()
    {
        $data =  array();
        $data = $this->model_name->function_table_name();

       echo json_encode($data);

        //   echo  '<pre>';
    //  print_r($data);
    }

如果你想在视图中加载它,你可以这样做。

控制器.php

$data = array();
$data['myJson'] = json_decode(file_get_contents('some_url'));
$this->load->view('my_view',$data);

视图.php

<?php 
//Access them like so
print_r($myJson);
// Rest of your code here to play with json 
?>

</html>

推荐阅读