无法在javascript脚本标记内输出实际json数据
我试图使用ajax和php动态地在javascript标记中输出实际的json数据,但这已经不起作用了,同时json数据得到了所需的结果。实际上,当我使用console.log(response)测试php脚本返回的结果json数据时,它会在firebug控制台中打印正确的数据。我也使用过无法在javascript脚本标记内输出实际json数据,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我试图使用ajax和php动态地在javascript标记中输出实际的json数据,但这已经不起作用了,同时json数据得到了所需的结果。实际上,当我使用console.log(response)测试php脚本返回的结果json数据时,它会在firebug控制台中打印正确的数据。我也使用过JSON.parse(response),也尝试过JSON.stringify(response),但是没有任何东西可以工作,也没有输出(打印)在javascript脚本标记中,如果我们使用stackevent
JSON.parse(response)
,也尝试过JSON.stringify(response)
,但是没有任何东西可以工作,也没有输出(打印)在javascript脚本标记中,如果我们使用stackevents:response
分配数据,当我看到页面源代码时,它只显示stackevents:response
,而不显示下面这样的实际输出
stackevents:[{"date":"2013-08-24","type":"arrowDown","graph":"g1","backgroundColor":"#85CDE6","value":"417","description":"This is description of an event"},{"date":"2013-08-25","type":"pin","graph":"g1","backgroundColor":"#85CDE6","value":"417","description":"This is description of an event"},{"date":"2013-08-26","type":"sign","graph":"g1","backgroundColor":"#85CDE6","value":"531","description":"This is description of an event"},{"date":"2013-08-27","type":"arrowUp","graph":"g1","backgroundColor":"#00CC00","value":"333","description":"This is description of an event"},{"date":"2013-08-28","type":"pin","graph":"g1","backgroundColor":"#FFFFFF","value":"552","description":"This is description of an event"},{"date":"2013-08-29","type":"arrowUp","graph":"g1","backgroundColor":"#85CDE6","value":"492","description":"This is description of an event"},{"date":"2013-08-30","type":"pin","graph":"g1","backgroundColor":"#FFFFFF","value":"379","description":"This is description of an event"},{"date":"2013-08-31","type":"pin","graph":"g1","backgroundColor":"#85CDE6","value":"767","description":"This is description of an event"},{"date":"2013-09-01","type":"flag","graph":"g1","backgroundColor":"#85CDE6","value":"169","description":"This is description of an event"},{"date":"2013-09-02","type":"arrowUp","graph":"g1","backgroundColor":"#85CDE6","value":"314","description":"This is description of an event"},{"date":"2013-09-03","type":"arrowDown","graph":"g1","backgroundColor":"#85CDE6","value":"437","description":"This is description of an event"}]
为了进一步澄清,我想这样做
stackevents:[{"date":"2013-08-24","type":"arrowDown","graph":"g1","backgroundColor":"#85CDE6","value":"417","description":"This is description of an event"},{"date":"2013-08-25","type":"pin","graph":"g1","backgroundColor":"#85CDE6","value":"417","description":"This is description of an event"},{"date":"2013-08-26","type":"sign","graph":"g1","backgroundColor":"#85CDE6","value":"531","description":"This is description of an event"},{"date":"2013-08-27","type":"arrowUp","graph":"g1","backgroundColor":"#00CC00","value":"333","description":"This is description of an event"},{"date":"2013-08-28","type":"pin","graph":"g1","backgroundColor":"#FFFFFF","value":"552","description":"This is description of an event"},{"date":"2013-08-29","type":"arrowUp","graph":"g1","backgroundColor":"#85CDE6","value":"492","description":"This is description of an event"},{"date":"2013-08-30","type":"pin","graph":"g1","backgroundColor":"#FFFFFF","value":"379","description":"This is description of an event"},{"date":"2013-08-31","type":"pin","graph":"g1","backgroundColor":"#85CDE6","value":"767","description":"This is description of an event"},{"date":"2013-09-01","type":"flag","graph":"g1","backgroundColor":"#85CDE6","value":"169","description":"This is description of an event"},{"date":"2013-09-02","type":"arrowUp","graph":"g1","backgroundColor":"#85CDE6","value":"314","description":"This is description of an event"},{"date":"2013-09-03","type":"arrowDown","graph":"g1","backgroundColor":"#85CDE6","value":"437","description":"This is description of an event"}]
代替使用javascript、jquery、ajax和php的stackevents:response
谢谢。如果您必须调用.php来获取json数据,并且希望将其写入页面的脚本标记中,下面是一个示例: 我不涉及在呈现页面时使用PHP将json数据插入html 只需在html的某处包含
,然后使用以下代码,就可以从.php文件中接受JSON数据,并使用innerHTML将其插入到脚本标记中。因为脚本标记只是另一个DOM元素,所以可以使用JS访问它们,就像使用div
或按钮一样
fetch('https://path-to.your/file.php')
.then(response => response.json())
.then(json => {
console.log(json)
document.getElementById('myscript').innerHTML = JSON.stringify(json,null,2);
})
JSON.stringify()
的第二个和第三个参数用于将JSON对象预打印到脚本标记中。如果不首先字符串化对象,则会将[object object]
作为脚本标记的内容,因为JS将使用类型强制来获取对象的字符串
如果上面使用modern JS的fetch的代码太多,下面是一个使用jQuery的示例:
$.getJSON( "https://path-to.your/file.php", function( json ) {
document.getElementById('myscript').innerHTML = JSON.stringify(json,null,2);
})
此外,如果您想创建脚本标记以将JSON放入其中:
let jsonScript = document.createElement('script');
// if you don't set the type, the browser will try to execute the text as JS instead of JSON.
jsonScript.setAttribute('type', 'application/json');
jsonScript.textContent = JSON.stringify(json);
document.head.appendChild(jsonScript); // or document.body, your choice
不过,您必须对脚本内容进行JSON.parse,才能从中获得任何有用的数据 如果您必须调用.php来获取json数据,并且希望将其写入页面的脚本标记,下面是一个示例:
我不涉及在呈现页面时使用PHP将json数据插入html
只需在html的某处包含
,然后使用以下代码,就可以从.php文件中接受JSON数据,并使用innerHTML将其插入到脚本标记中。因为脚本标记只是另一个DOM元素,所以可以使用JS访问它们,就像使用div
或按钮一样
fetch('https://path-to.your/file.php')
.then(response => response.json())
.then(json => {
console.log(json)
document.getElementById('myscript').innerHTML = JSON.stringify(json,null,2);
})
JSON.stringify()
的第二个和第三个参数用于将JSON对象预打印到脚本标记中。如果不首先字符串化对象,则会将[object object]
作为脚本标记的内容,因为JS将使用类型强制来获取对象的字符串
如果上面使用modern JS的fetch的代码太多,下面是一个使用jQuery的示例:
$.getJSON( "https://path-to.your/file.php", function( json ) {
document.getElementById('myscript').innerHTML = JSON.stringify(json,null,2);
})
此外,如果您想创建脚本标记以将JSON放入其中:
let jsonScript = document.createElement('script');
// if you don't set the type, the browser will try to execute the text as JS instead of JSON.
jsonScript.setAttribute('type', 'application/json');
jsonScript.textContent = JSON.stringify(json);
document.head.appendChild(jsonScript); // or document.body, your choice
不过,您必须对脚本内容进行JSON.parse,才能从中获得任何有用的数据 请提供用于尝试将此打印到脚本标记的代码。您是否已使用console.log(response.jsondata)检查,以查看是否正在那里获取数据。amarjit singh是的,我已使用console.log检查。它可以在firebug控制台中正确打印,并在使用警报时提供正确的输出。但不在脚本标记内请提供用于尝试将此打印到脚本标记的代码您是否使用console.log(response.jsondata)检查了以查看是否从那里获取数据。amarjit singh是的,我已使用console.log进行了检查。它可以在firebug控制台中正确打印,并在使用警报时提供正确的输出。但是不在脚本中,仍然不确定为什么要这样做。仍然不确定为什么要这样做。