想要实现的功能:
PHP 读取 txt 中的 json 数据传递给 JavaScript,再在 textarea 中原样显示出来
尝试的代码:
// 部分 PHP 代码
$content = file_get_contents($jsonFileName);
// 部分 JavaScript 代码
var stringWebsites = "" + <?php echo $content; ?> + "";
document.getElementById('websitesData').value = stringWebsites;
遇到的问题:
尽管上面的 JavaScript 代码中的变量 stringWebsites 的类型为 string,但是 textarea 中显示的内容却是 [object Object]。
var stringWebsites = <?php echo json_encode($content); ?>;
document.getElementById('websitesData').value = stringWebsites;
这样使用 json_encode虽然可以正常输出 json 内容,但是不是我想要的结果,因为如果 json 数据格式有误,这种方式就会无法正常输出 json 文件的内容。
更新:这样可以正常输出 json 内容,即便 json 数据格式有误,也会正常输出 json 文件的内容……,是我想当然了,没有尝试下。json_encode() 的返回值类型是 string...
你文件读取出来的$content,你看看是什么类型诶..读取出来的$content本身就是个对象呢? 我看了PHP官网上的文档,函数 file-get-contents() 的返回值类型是 string。textarea 中输出 object 原因在于那段 JavaScript 代码,JavaScript 把 PHP 传过来的包含 json 数据的 string 自动转换成 json 对象了。######
你js判断一下就好了
var stringWebsites = '<?php echo $content; ?>'; if ( typeof stringWebsites === object) { stringWebsites = JSON.stringify(stringWebsites) } console.log(stringWebsites);
######
之前绕了些弯路,php 传值给 textarea,并不需要 javascript 中转。代码如下:
<textarea><?php echo $noteContentString; ?></textarea>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。