Php Codeigniter、引导、下拉列表,将一个值而不是全部保存到数据库

Php Codeigniter、引导、下拉列表,将一个值而不是全部保存到数据库,php,ajax,codeigniter,Php,Ajax,Codeigniter,我想提前感谢大家 <!DOCTYPE html> <html lang="en"> <tr> <th>First Name</th> <th>LS</th> </tr> </thead> <tbody> </tbody> </table> </div>

我想提前感谢大家


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



我在codeigniter中使用这个代码


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



我需要有人帮助创建php代码的下拉列表,这是一个模态的一部分


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



我已经完成了简单的部分,需要帮助完成困难的部分

[![Drop-down list][1]][1]


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



在上面的示例中,我想将所有值保存到数据库中


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



现在有了这段代码,它只保存了一个值,而不是全部


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



使用下面的代码实现这一点的最佳方法是什么


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



这就是我目前所拥有的,只保存了一个值,谢谢




    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>




    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }




首先,将name与
[]
一起用于如下多个选择:
。因为此选择将向服务器发送多个值。 其次,我不知道table
keeprunner
结构,但您必须考虑如何将多个值存储到db:


    <!DOCTYPE html>
    <html lang="en">
    <tr>
    <th>First Name</th>
    <th>LS</th>
    </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
    </div>
    <script type="text/javascript">
    var table;
    $(document).ready(function() {
    table = $('#table').DataTable({ 
    "lengthMenu": [[25, 50, -1], [25, 50, "All"]],    
    "processing": true,
    "serverSide": true,
    "order": [],
    "ajax": {
    "url": "<?php echo site_url('runner/ajax_list')?>",
    "type": "POST",
    "data": function ( data ) {
     data.FirstName = $('#FirstName').val();
    data.LS = $('#LS').val();
    }
    },
    "columnDefs": [
    { 
    "targets": [ 0 ],
    "orderable": false
     }
    ]
    });
    $('#btn-filter').click(function(){
    table.ajax.reload();
    });
    $('#btn-reset').click(function(){ 
    $('#form-filter')[0].reset();
    table.ajax.reload();
    });
    });
    </script>
    <div class = "row">
    <div class="modal fade" id="modal_form" role="dialog">
    <div class="modal-dialog">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" aria-label="Close"><span aria- 
    hidden="true">&times;</span></button>
    <h3 class="modal-title">Person Form</h3>
    </div>
    <div class="modal-body form">
    <form action="#" id="form" class="form-horizontal">  
    <input type="hidden" value="" name="id"/> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">FirstName</label>
    <div class="col-md-9">
    <input name="FirstName" placeholder="First Name" class="form-control" 
    type="text">
    <span class="help-block"></span>
    </div>
    </div> 
    <div class="form-body">
    <div class="form-group">
    <label class="control-label col-md-3">LS</label>
    <div class="col-md-9">     
    <select name="LS" class="selectpicker" multiple size = 2>
    <option value='LRG'>LRG</option>
    <option value='SML'>SML</option>
    </select>
    </div>
    </div>
    </div> 
    </div>
    </form>
    </div>
    <div class="modal-footer" style="padding:2px 2px;">
    <button type="button" id="btnSave" onclick="save()" class="btn btn- 
    primary">Save</button>
    <button type="button" class="btn btn-danger" data- 
    dismiss="modal">Cancel</button>
    </div>
    </div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    var save_method;
    var table;
    var arr = $(this).val();
    $(document).ready(function() {
    $("input").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("textarea").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    $("select").change(function(){
    $(this).parent().parent().removeClass('has-error');
    $(this).next().empty();
    });
    });
    function add_person()
    {
    save_method = 'add';
    $('#form')[0].reset();
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
    $.fn.modal.prototype.constructor.Constructor.DEFAULTS.keyboard =  false;
    $('.form-group').removeClass('has-error');
    $('.help-block').empty();
    $('#modal_form').modal('show');
    $('.modal-title').text('Add New Resident'); 
    }
    function reload_table()
    {
    table.ajax.reload(null,true); //reload datatable ajax 
    }
    function save()
    {
    $('#btnSave').text('saving...');
    $('#btnSave').attr('disabled',true);
    var url;
    if(save_method === 'add') 
    {
    url = "<?php echo site_url('runner/ajax_add')?>";
    }
    else
    {
    url = "<?php echo site_url('runner/ajax_update')?>";
    }
    $.ajax({
    url : url,
    type: "POST",
    data: $('#form').serialize(),
    dataType: "JSON",
    success: function(data)
    {
    if(data.status)
    {
    $('#modal_form').modal('hide');
    reload_table();
    }
    else
    {
    for (var i = 0; i < data.inputerror.length; i++) 
    {
    $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has- 
    error'); 
    $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]);
    }
    }
    $('#btnSave').text('save');
    $('#btnSave').attr('disabled',false);
    },
    error: function (jqXHR, textStatus, errorThrown)
    {

    alert('Error adding / update data!!!!');
    $('#btnSave').text('save'); 
    $('#btnSave').attr('disabled',false);
    }
    });
    }
    </script>
    </body>
    </html> 




    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Runner extends CI_Controller {
    public function __construct()
    {
    parent::__construct();
    $this->load->model('runner_model','runner');
    }
    public function index()
    {
    $this->load->helper('url');
    $this->load->helper('form');
    $persons = $this->runner->get_list_countries();
    $opt = array('' => 'All person');
    foreach ($persons as $person) {
    $opt[$person] = $person;
    }       
    $this->load->view('runner_view', $person);
    }
    public function ajax_list()
    {
    $list = $this->runner->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $residents) {
    $no++;
    $row = array();
    $row[] = $residents->FirstName;
    $row[] = $residents->LS;
    $data[] = $row;
    }
    $output = array(
    "draw" => $_POST['draw'],
    "recordsTotal" => $this->runner->count_all(),
    "recordsFiltered" => $this->runner->count_filtered(),
    "data" => $data,
    );
    //output to json format
    echo json_encode($output);
    }
    public function ajax_add()
    {
    $data = array(
    'FirstName' => $this->input->post('FirstName'),
    'LS' => $this->input->post('LS'),
    );
    $insert=$this->runner->save($data);
    echo json_encode(array("status" => TRUE));
    }
    }



  • 为每个LS值指定单独的行。它需要使用几个插件
  • 一行,但LS值存储在序列化视图中,即
    ['LRG','SML']
    。为此,在像这样插入之前需要一些预处理:
    'LS'=>json\u encode($this->input->post('LS'),

您或任何人能给我举一个如何进行预处理的示例吗?表:ID int(11)Null=no,自动递增,(2)FirstName varchar(50)Null(no)(3)LS varchar(10)Null(no)您可以使用
'LS'=>json\u编码($this->input->post('LS')),
而不是
'LS'=>this->input->post('LS'),
。更改为'LS'=>json\u编码($this->input->post('LS'))并选择name=“LS[]),修复了错误“仅保存1个值的问题”。在数据库中保存仍然不正确,看起来是这样的[“LRG”,“SM”而不是LRG SML。是否要解决这个问题?谢谢。没有这样的问题。对于“LRG SML”,在“公共函数ajax\u update”中更改LS后,需要使用
内爆('.$this->input->post('LS'))
“内爆(“”,$this->input->post('LS')”,更新模式填充除LS之外的每个字段。这可能是罪魁祸首--$('[name=“LS”]')).val(data.LS);