[英]Javascript - how to encode special characters from text file for autopopulate text field
[英]How to encode json and special characters from php to javascript?
在我的数据库中,我将json保存在一个名为usp-custom-12
的自定义字段中,如下所示:
[{"Mamma":["Papa"]}]
然后我尝试解码
<?php
$jsonTable = usp_get_meta(false, 'usp-custom-12');
?>
var data = <?php echo htmlspecialchars_decode($jsonTable); ?>;
但是它给了我
var data = "[{"Mamma":["Papa"]}]";
和控制台日志错误:
Uncaught SyntaxError:意外的标识符
完整代码:
<?php
$jsonTable = usp_get_meta(false, 'usp-custom-12');
?>
var data = "<?php echo htmlspecialchars_decode($jsonTable); ?>";
console.log(data);
data = JSON.parse (data);
data.forEach(obj => {
Object.keys(obj).forEach(key => {
$('#newTable thead tr').append($('<th>').text(key));
obj[key].forEach((e, i) => {
if(!$("#newTable tbody tr:eq("+i+")").length) $("<tr>").appendTo($("#newTable tbody"));
$("#newTable tbody tr:eq(" + i + ")").append($('<td>').text(e))
})
})
});
在这个jsFiddle中,如果单击保存表,您将看到它生成一个与顶部表相同的表,这也是在控制台中登录正确的json: https : //jsfiddle.net/fbh0o67o/74/
$jsonTable
包含一个带有html实体编码的JSON字符串,因为它已经是JSON,你只需解码html etities并按原样回显它。 不需要JSON解码,不需要引用。 只需HTML解码并将其回显到您的javascript中。
var data = <?php echo htmlspecialchars_decode(usp_get_meta(false, 'usp-custom-12')); ?>;
data.forEach(obj => {
// Loop stuff here...
});
问题是字符串"mama"
引号需要使用addslashes
方法来转义那些引号。
尝试使用以下内容:
var data = "<?php echo addslashes(htmlspecialchars_decode($jsonTable)); ?>";
JSON到PHP:
json_decode($string);
如果使用可选参数$assoc
为true
- json_decode($string, true)
将在成功时返回关联数组。
PHP到JSON:
json_encode($array);
PHP手册: json_encode() json_decode()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.