Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用$(element.val();使用html实体。_Php_Jquery - Fatal编程技术网

Php 使用$(element.val();使用html实体。

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将其用户配置文件的内容输入数据库时,我都会使用字符串过滤器将其转换为html实体

当用户延迟编辑其配置文件时。。不确定我做的是否正确。但我用php循环遍历所有字段,并设置它们的后续“键”,即输入名称和数据库中的值

<?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('&#39640;&#32423;&#31243;&#24207;&#35774;&#35745;'))


将数据存储到数据库中时不要这样做。按原样存储原始数据。当您输出它时,通过必要的处理函数发送它(这更像是
htmlspechialchars
而不是
htmllentities
)。“据我所知……通过php循环您的值并通过jquery设置值是设置下拉列表的唯一方法”-当然不是。PHP完全能够生成必要的HTML输出来创建选择字段,如果需要,可以预先选择某些选项;我必须加上单引号,比如.val(“”);如果我执行html_entity_decode(),它会将实体转换回撇号,它会将其视为.val('mr o'grady');它在中间的单引号中断裂。除非我遗漏了什么