php – JSON保存在数据库中并使用JQuery加载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – JSON保存在数据库中并使用JQuery加载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2997字,纯文字阅读大概需要5分钟。
内容图文
![php – JSON保存在数据库中并使用JQuery加载](/upload/InfoBanner/zyjiaocheng/893/f83d631b9d8f40cab17fa3c035164b8a.jpg)
我创建了一个巨大的JSON-Object并将其保存在我的数据库中.但是当我加载“string”并在PHP中回显它时,我无法访问JQuery中的JSON对象.如果我想将我的JSON对象保存在MySQL数据库中(当我刚创建数组然后用“echo json_encode($arr)”回显它时,我是否需要考虑一些事情;“它工作正常,但我需要保存对象用于缓存).
{“247”:{“0″:”This is a
question”,”1″:””,”2″:”247″,”3″:”0″,”answers”:[[“Answer1″,”960″,”1”],[“Answer
2″,”962″,”0”],[“Answer
3″,”961″,”0”],[“Answer
4″,”963″,”0”]]},{“248”:{“0″:”This is a
question”,”1″:””,”2″:”247″,”3″:”0″,”answers”:[[“Answer1″,”960″,”1”],[“Answer
2″,”962″,”0”],[“Answer
3″,”961″,”0”],[“Answer
4″,”963″,”0”]]}}
只是一个摘录
如果我只是回显这个JSON-Object,一切正常,但如果我从数据库加载相同的字符串并回显它,它就不起作用.
更新1:忘记告诉我我正在使用带有UTF8_general_ci排序规则的TEXT-Field
更新2:也许更多代码:
function start() {
$(".start").click(function () {
$.post("load_script.php", { }, function(data){
alert(data[247][0]);
}, "json");
return false;
});
}
这会加载脚本,并应提醒“这是一个问题”
<?php
require_once('connect.php');
$ergebnis = mysql_query("SELECT text FROM cache_table ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_object($ergebnis)) {
$output = $row->text;
}
echo $output;
?>
这是脚本,我用JSON-Object加载数据库条目.
更新3:
我想我解决了这个问题.有些破坏潜入我的JSON-Object所以我在输出之前执行此操作:
$output = str_replace("\n", "", $output);
$output = str_replace("\r", "", $output);
$output = str_replace("\r\n", "", $output);
解决方法:
我建议看看你的javascript看到了什么.不要让jQuery为你解释json,而是查看原始数据:
function start() {
$(".start").click(function () {
$.post("load_script.php", { }, function(data){
alert(data);
}, "text");
return false;
});
}
例如,如果字符串的一部分由于UTF-8而被奇怪编码,则可能导致它出现.
完成后,如果仍然无法发现问题,请尝试以下代码:
var data1, data2;
function start() {
$(".start").click(function () {
$.post("load_script.php", {src: "db" }, function(data){
data1 = data;
}, "text");
$.post("load_script.php", {src: "echo" }, function(data){
data2 = data;
}, "text");
if (data1 == data2) {
alert("data1 == data2");
}
else {
var len = data1.length < data2.length ? data1.length : data2.length;
for(i=0; i<len; ++i) {
if (data1.charAt(i) != data2.charAt(i)) {
alert("data1 first differs from data2 at character index " + i);
break;
}
}
}
return false;
});
}
然后更改PHP代码以从数据库返回数据或简单地回显它,具体取决于post参数:
<?php
if ($_POST['src'] == 'db')) {
require_once('connect.php');
$ergebnis = mysql_query("SELECT text FROM cache_table ORDER BY RAND() LIMIT 1");
while($row = mysql_fetch_object($ergebnis)) {
$output = $row->text;
}
}
else {
$output = '{"247":{"0":"This is a question","1":"","2":"247","3":"0","answers":[["Answer1","960","1"],["Answer 2","962","0"],["Answer 3","961","0"],["Answer 4","963","0"]]},{"248":{"0":"This is a question","1":"","2":"247","3":"0","answers":[["Answer1","960","1"],["Answer 2","962","0"],["Answer 3","961","0"],["Answer 4","963","0"]]}}';
}
echo $output;
?>
希望有所帮助!
内容总结
以上是互联网集市为您收集整理的php – JSON保存在数据库中并使用JQuery加载全部内容,希望文章能够帮你解决php – JSON保存在数据库中并使用JQuery加载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。