如何使用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);
}
}
答案 0 :(得分:0)
您在控制器中命名索引laboratory
,但在视图中使用laboratories
。
此外,当您使用foreach ($laboratorios as $lab)
时,$ lab是$ laboratorios中的单个项目。如果你不需要$ lab,你就不需要foreach()。
我可能还没有看到其他问题。 charlietfl提到传递给$ .ajax的数据结构可能无效。