从CodeIgniter中的下拉列表中保存数据

时间:2014-11-27 06:53:15

标签: codeigniter

我创建了一个菜单页面,其中有一个下拉菜单,其中包含数据库中的菜单列表,还有一个文本框可以输入新菜单。

我遇到的问题是,我似乎无法弄清楚如何保存我的下拉列表。例如,我有一个名为"关于我们的菜单"在下拉列表中,我想创建一个名为" Team"和" Team"的新菜单。是"关于我们"

的孩子

所以在我的表中我会有类似的东西

 id | parent | title
------------------------
 1  | NULL   | About Us
 2  | 1      | Team

菜单控制器

function get_data_from_post()
{
    $data['title'] = $this->input->post('title', TRUE);
    $data['parent'] = $this->input->post('parent', TRUE);


    if(!isset($data)){
        $data = '';
    }

    return $data;
}

function get_data_from_db($update_id)
{
    $query = $this->get_where($update_id);

    foreach($query->result() as $row){
        $data['title'] = $row->title;
        $data['parent'] = $row->parent;
    }

    return $data;
}

function create()
{
    $update_id = $this->uri->segment(3);
    $submit = $this->input->post('submit', TRUE);

    if($submit == "Submit"){
        //person has submitted the form
        $data = $this->get_data_from_post();
    }else{
        if(is_numeric($update_id)){
            $data = $this->get_data_from_db($update_id);
        }
    }

    if(!isset($data)){
        $data = $this->get_data_from_post();
    }


    //$titles = array();

    $query = $this->get('title');
    foreach($query->result() as $row){
        $titles[] = $row->title;
    }

    $data['titles'] = $titles;

    $data['update_id'] = $update_id;

    $data['view_file'] = "create";
    $this->load->module('templates');
    $this->templates->admin_template($data);
}

function submit()
{
    $this->load->library('form_validation');

    $this->form_validation->set_rules('title', 'Title', 'required|xss_clean');

    if($this->form_validation->run($this) == FALSE){
        $this->create();
    }else{
        $data = $this->get_data_from_post();



        $update_id = $this->uri->segment(3);

        if(is_numeric($update_id)){
            $this->_update($update_id, $data);
        }else{
            $this->_insert($data);
        }

        redirect('menus/manage');
    }
}

create.php view

<div class="row">
<div class="col-md-12">
    <h2>Create Menus</h2>   
    <h5>Welcome Jhon Deo , Need to make dynamic. </h5>
</div>
</div>

<hr />

<?php
    echo validation_errors("<p style='color: red;'>", "</p>");
    echo form_open('menus/submit/'.$update_id);
?>
<div class="row">
    <div class="col-md-12">
        <form role="form">
        <div class="form-group">
    <select name="menus">
        <?php
            foreach($titles as $title){

                echo "<option value=".$title.">".$title."</option>";
            }
        ?>
        </select>


    </div>

        <div class="form-group">
            <label>Title</label>
            <!-- <input class="form-control" /> -->
            <?php
                $data = array(
                            'name' => 'title',
                            'id' => 'title',
                            'value' => $title,
                            'class' => 'form-control',
                        );

                echo form_input($data);
            ?>
        </div>

        <?php

            $data = array(
                'name' => 'submit',
                'id' => 'submit',
                'value' => 'Submit',
                'class' => 'btn btn-success',
                'style' => 'width: 100%',
            );

            echo form_submit($data);
        ?>
    </form>
</div>
</div> 
<?php    
    echo form_close();
?>

更新: 这就是我在print_r($ titles)

时所拥有的
Array
(
    [0] => About Us
    [1] => Home
)

如果您有什么不明白或者您需要我提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

您应该已经声明了一个模型。从那里,您可以创建一个函数,该函数会将值保存在通过控制器初始化的数据库中。您应该利用它的MVC模式。 CodeIgniter有一个不错的文档,可以阅读有关我所指出的内容。https://codeigniter.com/user_guide/overview/mvc.html?highlight=model