Php 使用$(element.val();使用html实体。
每当用户使用php将其用户配置文件的内容输入数据库时,我都会使用字符串过滤器将其转换为html实体 当用户延迟编辑其配置文件时。。不确定我做的是否正确。但我用php循环遍历所有字段,并设置它们的后续“键”,即输入名称和数据库中的值Php 使用$(element.val();使用html实体。,php,jquery,Php,Jquery,每当用户使用php将其用户配置文件的内容输入数据库时,我都会使用字符串过滤器将其转换为html实体 当用户延迟编辑其配置文件时。。不确定我做的是否正确。但我用php循环遍历所有字段,并设置它们的后续“键”,即输入名称和数据库中的值 <?php php foreach ($usermeta as $key=>$value){ ?> <script> $("<? echo $key; ?>").val("<? echo $val ;?>"); &
<?php php foreach ($usermeta as $key=>$value){ ?>
<script> $("<? echo $key; ?>").val("<? echo $val ;?>"); </script>
<?php } ?>
$(“”)val(“”);
这很有效。但是html实体不会被转换回来吗?我该怎么做?当您将html实体转换为撇号或逗号时,有没有一种不破坏jquery的方法
我不能将每个值都回显到输入值中,因为在某些情况下我会有下拉列表,据我所知。。。通过php循环遍历值并通过jquery设置值是设置下拉列表的唯一方法 要回答最初的问题,您需要在回音之前[解码实体][1]:
$("<? echo $key; ?>").val("<? echo(html_entity_decode($val)); ?>");
$(“”).val(“”);
至于这样做是否是个好主意,不,不是真的。输出表单时,可以直接在输入值中设置,如:
<input type="text" name="foo" value="<?php echo(html_entity_decode($usermeta->foo)); ?>">
javascript中的html\u实体\u解码函数
让html\u实体\u解码=函数(str){
返回str.replace(/(x[0-9a-fA-F]+|\d+)/g,函数(匹配,十二月){
返回字符串.fromCharCode(dec.substr(0,1)='x'?parseInt(dec.substr(1,16):dec);
})
};
例如使用
alert(html_entity_decode('高级程序设计'))
将数据存储到数据库中时不要这样做。按原样存储原始数据。当您输出它时,通过必要的处理函数发送它(这更像是
htmlspechialchars
而不是htmllentities
)。“据我所知……通过php循环您的值并通过jquery设置值是设置下拉列表的唯一方法”-当然不是。PHP完全能够生成必要的HTML输出来创建选择字段,如果需要,可以预先选择某些选项;我必须加上单引号,比如.val(“”);如果我执行html_entity_decode(),它会将实体转换回撇号,它会将其视为.val('mr o'grady');它在中间的单引号中断裂。除非我遗漏了什么