如何使用codeigniter在mysql中保存多个输入字段值

时间:2016-08-10 10:07:35

标签: php json forms codeigniter mysqli

我的表格有6个字段,名称相同 - 功能[],

我想以JSON格式将多个输入字段值保存到mysql 1列中:

<form method="post" action="<?php echo base_url();?>product/save/">
<input type="text" class="form-control" name="feature[]" placeholder="fetaure 1">
<input type="text" class="form-control" name="feature[]" placeholder="fetaure 2">
<input type="text" class="form-control" name="feature[]" placeholder="fetaure 3">
<input type="text" class="form-control" name="feature[]" placeholder="fetaure 4">
<?php ?>

我在mysql表中有列功能,我希望将输入字段值保存为feature列作为json数据。我正在使用codeigniter 3。

4 个答案:

答案 0 :(得分:0)

您只需要根据表单方法获取 INPUTS 。根据表单方法post / get将输入保存在变量中。

发表:

$features=$_POST["feature"];

获取:

$features=$_GET["feature"];

$features将是一个PHP数组,您可以使用json_encode()将 PHP数组编码为 JSON字符串。像这样,

$features_json=json_encode($features);

现在使用此变量$features_json在MySQL数据库中保存 JSON字符串

编码后的 JSON字符串将如下所示:http://json-parser.com/67c07feb

答案 1 :(得分:0)

ex for codeignitor

function save()
{
  $feature = $this->input->post('feature');
  $json = json_encode($feature);
  $this->Your_model_Name->save($json);
}

答案 2 :(得分:0)

控制器(产品)

function save() {
    $features = $this->input->post('feature');
    $feature_json = json_encode($features);
    //send to model
    $this->load->model('your_model');
    $this->your_model->insert($feature_json);
}

模型

function insert($feature_json) {
     $data = array(
          'features' => $feature_json
     );
     $this->db->insert($data);
}

更新

使用表单验证添加trim和xss clean

$this->form_validation->set_rules('feature[]',"Feature", "trim|xss_clean");

答案 3 :(得分:0)

因为它是一个数组,所以你需要一个foreach循环。你的功能必须看起来像这样

<强>控制器

function save()
{
    foreach($this->input->post('feature') as $f)
    {
       $f = trim($f);
       $data = json_encode($f);
       $this->YOUR_MODEL->insert_to_table($data);
    }
}

<强>模型

function insert_to_table($data)
{
    $this->db->insert('table_name',$data);
}

这样,您发布所有输入

希望这会有所帮助