我有以下代码:
<?php
$select_options = array();
foreach($delivery_options as $option)
{
$select_options[$option->getDeviceId()] = $option->getDeviceName();
echo $select_options[$option->getDeviceId()];
}
echo $this->Form->input('default_device', array(
'type' => 'select',
'options' => $select_options,
'value' => $default_device,
'label' => '',
));
?>
在foreach循环中,每个echo都会返回:
abc'abc
在html源代码中,它看起来像abc'abc
然后在选择输入中:abc'abc
在html源代码中:abc&#39;abc
这意味着来自&
的{{1}}个字符被转换为它的html编码 - abc'abc
- 但是它是如何发生的?
我也试过htmlentities()和htmlspecialchars(),但这仍然没有帮助......
答案 0 :(得分:1)
select输入类型允许调用特殊的$ option属性 'escape'接受bool并确定是否为HTML实体 编码选择选项的内容。默认为true。
尝试将其设置为false。
echo $this->Form->input('default_device', array(
'type' => 'select',
'options' => $select_options,
'escape' => false, // like so
'value' => $default_device,
'label' => '',
));