使用jquery获取多个选择值

时间:2017-11-22 13:29:53

标签: php jquery ajax codeigniter

如何使用ajax将多个选择值插入数据库。我无法抓住值传递给控制器​​,我使用codeigniter。我的控制器中出现此错误: *消息:为foreach()*

提供的参数无效

以下是我的尝试:

<select class="form-control chosen-select" multiple name="laborat" id="laborat" required>
    <option value="" hidden></option>
    <?php 

      foreach($laboratories as $row)
      { 
         echo '<option value="'.$row->name.'">'.$row->name.'</option>';
      }

    ?>
</select>

JS

$(function() {
    $('#formLabo').on('submit', function(event) {
        var selected = [];
        $('#laborat :selected').each(function() {
            selected[$(this).val()] = $(this).text();
        });

        $.ajax({
            type: "POST",
            url: "<?=base_url('admin/SaveFormIndicacionesLab')?>",
            data: {
                laboratorios: selected
            },

            cache: true,
            success: function(data) {}

        });
    });
}); 

控制器

public function SaveFormIndicacionesLab()
    {
    $laboratorios = $this->input->post('laboratorios');
    foreach($laboratorios as $lab)
        {
        $save = array(
            'laboratory' => $lab
        );
        $this->model_admin->SaveFormIndicacionesLab($save);
        }
    }

1 个答案:

答案 0 :(得分:0)

您在控制器中命名索引laboratory,但在视图中使用laboratories

此外,当您使用foreach ($laboratorios as $lab)时,$ lab是$ laboratorios中的单个项目。如果你不需要$ lab,你就不需要foreach()。

我可能还没有看到其他问题。 charlietfl提到传递给$ .ajax的数据结构可能无效。