CodeIgniter Multiselect 不使用单引号选择值

CodeIgniter Multiselect not Selecting Value with Single Quote

所以我使用表单助手来设置一个 multiselect,如下所示:

$certifiedTeacher = "I'm storing a value";
echo form_multiselect('certifiedTeacer', $certifiedTeacher, set_value('certifiedTeacher', $certifiedTeacher), 'id="certifiedTeacher" class="multiselect"');

在形成 post 之后,正确的值(在本例中为 "I'm storing a value")保存在数据库中。当我重新加载页面时,字段中没有值 selected。

如果我 select 一个没有单引号的字段,一切都按预期工作,并且 upno return 该值是预先 selected.

我自己想出来的。问题是 CodeIgniter 的 set_value 函数会自动转义 HTML 字符。由于 $certifiedTeacher 未编码,因此它们不匹配。

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"');