2014-01-22 5 views
1

У меня есть форма с различными полями ввода и 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 значения в одном поле, если все они отмечены?

Любая помощь будет высоко оценена. Спасибо

+0

Возможный дубликат [как сохранить значение флажка в базе данных mysql с использованием php] (http://stackoverflow.com/questions/15341639/how-to-save-checkbox-value-into-mysql-database-using-php) –

ответ

2

Единственный способ сохранить их все в том же поле БД будет конкатенации значения и хранить, что:

$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 
Смежные вопросы