Javascript 在Mysql中插入纯HTML并检索HTML以显示在页面上
我的申请有问题。它是一个表单生成器,您可以构建自己的表单,并在以后使用该表单。表单生成器创建的表单的生成HTML代码,我将其插入MySQL数据库 但是,如果我想将表单从数据库中取出,HTML将无法正确显示。可能是因为引号。以下是一些数据:Javascript 在Mysql中插入纯HTML并检索HTML以显示在页面上,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我的申请有问题。它是一个表单生成器,您可以构建自己的表单,并在以后使用该表单。表单生成器创建的表单的生成HTML代码,我将其插入MySQL数据库 但是,如果我想将表单从数据库中取出,HTML将无法正确显示。可能是因为引号。以下是一些数据: <form class="form-horizontal" ><fieldset> 然后我把它保存在MySQL数据库中。表的编码是否可能不正确?<=小于= 在数据库中插入的方式不对 正如在评论中所说的,在插入数据库
<form class="form-horizontal" ><fieldset>
然后我把它保存在MySQL数据库中。表的编码是否可能不正确?
<
=小于=
在数据库中插入的方式不对
正如在评论中所说的,在插入数据库之前,您需要执行以下操作。我猜您使用的是PHP
使用函数htmlspecialchars\u decode
。
有关详细信息,请参见链接如果您在客户端执行此操作,则可以使用以下代码:
var htmlEntities = {
encode : function htmlEscape(str, flag) {
var htmlToString = String(str)
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
if(flag) {
// if flag == false don't encode "&" symbole
htmlToString.replace(/&/g, '&');
}
return htmlToString;
},
decode : function(str) {
var element = document.createElement('div');
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
};
var htmlEntities={
编码:函数htmlEscape(str,flag){
var htmlotstring=String(str)
.替换(/“/g,”))
.替换(/'/g'';'))
.替换(//g',);
国际单项体育联合会(旗){
//如果flag==false,则不编码“&”符号
htmlToString.replace(/&/g,“&;”);
}
返回HTML字符串;
},
解码:函数(str){
var-element=document.createElement('div');
if(str&&typeof str=='string'){
//strip脚本/html标记
str=str.replace(/]*>([\S\S]*?)/gmi',);
str=str.replace(/我自己最终找到了答案。插入数据库的过程很顺利。我只需要做几件事
首先,我需要使用PHP对字符串进行解码,然后将其发送到我的客户端应用程序:
htmlspecialchars_decode
然后在我的客户端应用程序中,我使用javascript修剪结果:
var html = $.trim(r);
$$('#formvragenhier').html(html);
然后我将它插入到我的应用程序中,HTML就会正确显示!…和/或htmlspecialchars()
Aha,所以插入出错了,谢谢!我认为插入没问题。如果是这样,我确保将您的答案标记为解决方案!请参阅我的编辑。HTMLEntities不起作用。引号仍会出现并破坏HTML代码。
var htmlEntities = {
encode : function htmlEscape(str, flag) {
var htmlToString = String(str)
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
if(flag) {
// if flag == false don't encode "&" symbole
htmlToString.replace(/&/g, '&');
}
return htmlToString;
},
decode : function(str) {
var element = document.createElement('div');
if(str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
};
htmlEntities.encode('<form class="form-horizontal" ><fieldset><!-- Form Name --><legend>Hubert</legend></fieldset></form>', false)
"<form class="form-horizontal" ><fieldset><!-- Form Name --><legend>Hubert</legend></fieldset></form>"
htmlEntities.decode('<form class="form-horizontal" ><fieldset><!-- Form Name --><legend>Hubert</legend></fieldset></form>');
"<form class="form-horizontal" ><fieldset><!-- Form Name --><legend>Hubert</legend></fieldset></form>"
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>
<?php
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
htmlspecialchars_decode
var html = $.trim(r);
$$('#formvragenhier').html(html);