Как вставить выпадающие значения множественного выбора в mysql через codeigniter (view-> controller-> model) - PullRequest
0 голосов
/ 04 ноября 2018

View.php: - используется jquery multiselect

<form class="form-horizontal" id="user_project" action="" method="POST" enctype="multipart/form-data">
<div class="row">
 <label class=" col-sm-3 col-form-label">Select Project Members :-</label>
 <div class="col-sm-8 form-group bmd-form-group">
  <select class="form-control" name="project_members[]" multiple 
     id="project_members">
   <?php 
    foreach($members as $mem){?>
    <option value="<?php echo $mem->email;?>"><?php echo $mem->firstname." 
     ".$mem->lastname;?></option>
   <?php }?>
  </select>
 </div>
 <label class="col-sm-1 label-on-right">
  <code>*</code>
 </label>
</div>

<button type="button" class="btn btn-rose" onclick="return 
  validate_Project();"> Add Project<div class="ripple-container"> </div> 
</button>
</form>

Scripting.js: - для проверки и вызова ajax

function validate_Project()
{
var level = document.getElementById("project_privacy").value;
var title = document.getElementById("project_title").value;
var domain = document.getElementById("project_domain").value;
var description = document.getElementById("project_description").value;
var guide = document.getElementById("project_guide").value;
var mem = document.getElementById("project_members").value;
var status = document.getElementById("project_status").value;
var category = document.getElementById("project_category").value;


var url;
if(save_method == 'update')
{
    url = "http://localhost/pccoespii/index.php/ricontroller/edit_project/";
}
else
{
    url = "http://localhost/pccoespii/index.php/ricontroller/float_project/";
}
//pass data to database using AJAX
$.ajax({
    url : url,
    type: "POST",
    data: $('#user_project').serialize(),
    dataType: "JSON",
    success: function(data)
    {
        //if success close modal and reload ajax table
        demo.showSwal('success-message');
    },
    error: function (xhr, ajaxOptions, thrownError)
    {
        alert(thrownError);
        console.warn(xhr.responseText);
    }
});

}

Controller.php

Здесь я хочу получить доступ к значению множественного выбора из представления, чтобы я мог передать эти значения в модель и тем самым в базу данных MySql. Я также не могу отследить, какой вывод выводит контроллер Должны ли значения проталкиваться в базу данных через цикл? Также, пожалуйста, помогите мне, как мне поступить при отправке этих данных в модель

public function float_project()
{
    $members = $this->input->post('project_members');
    foreach($members as $row)
    {
        $data= array(
            'project_members' => $row
        );
        echo(string($data));
    }
}

1 Ответ

0 голосов
/ 05 ноября 2018

Ваш контроллер не может прочитать данные поста, потому что ваша форма не обернута тегом формы, имеющим значение post для атрибута метода. Попробуйте обернуть свою форму этим.

<div class="col-sm-8 form-group bmd-form-group">
   <form action="" method="post"> 
       <select class="form-control" name="project_members[]" multiple 
 id="project_members">
         <?php foreach($members as $mem){ ?>
            <option value="<?php echo $mem->email;?>"><?php echo $mem->firstname." 
 ".$mem->lastname;?></option>
         <?php }?>
       </select>
   </form>
</div>

Ваш контроллер должен теперь быть

<?php 
    public function float_project(){
       $members = $this->input->post('project_members');
       foreach($members as $row){
        echo $row;
       } 
    } 
?>

Если вы хотите выполнить запись foreach для вставки, ваш контроллер должен быть

<?php 
    public function float_project(){
       $members = $this->input->post('project_members');
       foreach($members as $row){
        $insert = $this->my_model->insertProjectMembers($row);
        if($insert){
           echo "Record were added";
         }
       } 
    } 
?>

А твоя модель должна быть такой

class My_model extends CI_Model {
    public function insertProjectMembers($row){
      $data = array(
         'db_column_name' => $row
      );
      return $this->db->insert('your_table_name', $data);
    }
}
...