CakePHP文本框无法读取Google转换值的技术问题
问题解决:文本框无法显示HTML实体转换的字符
我来帮你解决这个问题!问题的核心在于input的value属性不会自动解析HTML实体,而label的内容会被浏览器当作HTML解析,所以出现了label正常显示印地语字符,但文本框里却显示原始实体编码(比如म)的情况。
解决方案:解码HTML实体为实际字符
你需要用PHP的html_entity_decode()函数,把实体编码的字符串转换成对应的Unicode字符,这样input的value就能直接渲染出正确的文字了。
修改后的代码如下:
// 先解码HTML实体为实际字符 $agetSingleuser = html_entity_decode('महेश'); <?php echo $this->Form->create('user',array('class'=>'forms'));?> <?php echo $this->Form->input('hindi', array( 'type' => 'text', 'id'=>'userhindi', 'value'=>$agetSingleuser, 'label' => html_entity_decode('महेश'), // 这里也可以统一解码,保持代码一致性 'class'=>'form-control', 'div' => 'col-lg-4 col-xs-12' ));?> <?php echo $this->Form->submit('Save',array( 'div' => false,'class'=>'btn','name' => 'submit'));?> <?php echo $this->Form->end();?>
为什么这么改?
html_entity_decode()会把像म这样的HTML实体,转换成对应的印地语字符「मेरा」- input的value属性接收的是纯文本内容,不会解析HTML实体,所以必须传入实际的字符才能正确显示
- label的内容属于HTML内容,浏览器会自动解析实体,不过统一用解码后的字符能让代码更整洁一致
内容的提问来源于stack exchange,提问作者prameshwer
相关产品推荐
相关产品推荐

