0

我在一个对话框中有一个表单,我在其中询问用户他希望他的比赛在哪个锦标赛中注册。我使用这样的多选下拉列表来做到这一点:(Codeigniter)

<?php
foreach ($kampioenschappen as $kampioenschap) {
   $options3[$kampioenschap->kampioenschapsId] = $kampioenschap->naam;
}
// Er moeten meerdere kampioenschappen geselecteerd kunnen worden
echo form_multiselect('kampioenschap', $options3, '', 'id="kampioenschap" class="text ui-widget-content" style="width:300px" size=' . count($kampioenschappen));
?>

所以用户可以选择多个冠军。

var dataString = $("#JqAjaxForm:eq(0)").serialize();
alert(dataString);
$.ajax({
   type: "POST",
   url: site_url + "/reeks_beheren/update",
   async: false,
   data: dataString,
   dataType: "json",
   error: function(a, b, c) {
     alert(a.responseText);
     alert(c);
   }
});

此代码段会将带有 json 的表单发送到控制器

$kampioenschappen = $this->input->post('kampioenschap');

这就是我遇到麻烦的地方,当我提醒数据字符串 .serialize 给出了所有选定的冠军,但我没有在控制器中收到它们。

有没有我忘记的步骤,或者我在这里做的事情完全错误?

提前感谢您提供可能的答案。

4

1 回答 1

0

问题是您的多选下拉列表不是数组表示法。您应该在[]其名称中添加方括号以对其进行定义。

echo form_multiselect('kampioenschap[]', $options3, '', 'id="kampioenschap" class="text ui-widget-content" style="width:300px" size=' . count($kampioenschappen));

我假设您的问题是您的控制器没有收到 ajax 请求。也许将来尝试对您的问题更具描述性。:)

于 2013-03-29T21:10:15.977 回答