所以我使用表单帮助器来设置多选,像这样:
$certifiedTeacher = "I'm storing a value";
echo form_multiselect('certifiedTeacer', $certifiedTeacher, set_value('certifiedTeacher', $certifiedTeacher), 'id="certifiedTeacher" class="multiselect"');
在form post之后,正确的值,在这个例子中"I'm stored a value",被保存在数据库中。当我重新加载页面时,字段中没有选择值。
如果我选择一个没有单引号的字段,一切都按预期工作,upno返回该值是预先选定的。
我自己弄明白了。问题是CodeIgniter的set_value函数会自动转义HTML字符。因为$ certifedteacher没有被编码,所以它们不匹配。
set_value函数提供了第三个布尔参数,允许您关闭HTML转义。这解决了我的问题。修改后的新代码如下:
$certifiedTeacher = "I'm storing a value";
//false added as a third parameter for set_value to turn off HTML escaping.
echo form_multiselect('certifiedTeacher', $certifiedTeacher, set_value('certifiedTeacher', $certifiedTeacher, false), 'id="certifiedTeacher" class="multiselect"');