【问题标题】:Pass checkbox value to database including other form value ?将复选框值传递给数据库,包括其他表单值?
【发布时间】:2014-02-13 03:34:21
【问题描述】:

我有一个包含各种输入字段和 3 个复选框的表单。如何将这些复选框值存储在数据库的同一字段中的数据库中?

这是我的代码

形式:

<div class="pro-input pro-field">
    <label for="name" class="label_title">Name</label>
    <?php echo form_input($title); ?>
</div><!--pro-input-->

<div class="pro-text pro-field">
    <label for="name" class="label_text">Text</label>
    <?php echo form_textarea($text); ?>
</div>

<div class="pro-input pro-field">
    <label for="name" class="label_title">URL</label>
    <?php echo form_input($url);?>
</div><!--pro-input-->

<div class="pro-checkbox pro-field">
    <label for="name" class="label_title">Categorie</label>
    <div class="pro-check">
        <?php
        echo form_label('Code', 'code');
        echo form_checkbox('tags[]', 'code');
        echo form_label('design', 'design');
        echo form_checkbox('tags[]', 'design');
        echo form_label('other', 'other');
        echo form_checkbox('tags[]', 'other');
        ?>
    </div>
</div>

控制器:

public function create()
{
    $this->load->helper('form');
    $this->load->library('form_validation');
    $this->form_validation->set_rules('title', 'Title', 'trim|required');
    $this->form_validation->set_rules('text', 'Text', 'trim|required');

    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('admin/header', $data);
        $this->load->view('admin/index', $data);
        $this->load->view('admin/footer', $data);

    }
    else
    {
        $this->portfolio_model->set_project();
        $this->load->view('admin/index', $data);

    }
}

型号:

public function set_project()
{
    $this->load->helper('url');

    $slug = url_title($this->input->post('title'), 'dash', TRUE);

    $data = array(
        'title' => $this->input->post('title'),
        'slug' => $slug,
        'text' => $this->input->post('text'),
        'url' => $this->input->post('url'),
        'tags' => $this->input->post('tags')        
    );

    return $this->db->insert('mydb', $data);
}

数据库中的值显示为“0”。 如果全部选中,如何在同一字段中显示 3 个值?

任何帮助将不胜感激。谢谢

【问题讨论】:

标签: php forms codeigniter checkbox


【解决方案1】:

将它们全部存储在同一个数据库字段中的唯一方法是将值连接起来并存储:

$tags_value = implode("|", $this->input->post('tags');
//should produce something like "code|design|other"

或者您可以为标签创建额外的字段并使用它们(这将省去在另一端处理连接字符串的麻烦,最后一个选项也是如此):

projects_table

id|slug|text|url|tag_code|tag_design|tag_other
----------------------------------------------
 1|hi  |coo |z.c|       0|         1|        1

此外,您可以创建另一个表并使用它:

tags_table

id|project_id|tag
----------------------
 1|       123|design
 2|       123|code
 3|       123|other

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多