从php到javascript获取格式正确的json?
我有一个数据库,其中有一个名为options的表。在这个表中,我有3个字段从php到javascript获取格式正确的json?,php,jquery,json,Php,Jquery,Json,我有一个数据库,其中有一个名为options的表。在这个表中,我有3个字段 int autoincrement类型的id 选项\u类型varchar的名称 varchar类型的选项\u值 假设我已经插入了以下to记录 “1”、“主页标题”、“主页” “2”、“索引页标题”、“索引页” 我有一个php脚本,如下所示 <?php header("Access-Control-Allow-Origin: *"); //set timezone becuase some servers are j
<?php
header("Access-Control-Allow-Origin: *");
//set timezone becuase some servers are jsut wrong
define('TIMEZONE', 'Europe/Athens');
date_default_timezone_set(TIMEZONE);
//Connect & Select Database
mysql_connect("somehost","simeuser","somepass") or die("could not connect server");
mysql_select_db("somedbdb") or die("could not connect database");
function getOptions(){
$sqldata = mysql_query("SELECT * FROM `options`");
$rows = array();
while($r = mysql_fetch_array($sqldata)) {
$rows[$r['option_name']][$r['option_value']][]=$r['option_value'];
}
echo json_encode($rows);
}
getOptions();
?>
$.get("http://localhost/test-app/get_app_settings.php",function(data){
var json = JSON.parse(data);
console.log(JSON.stringify(json));
alert("homepage title was "+json['homepage_title']);
alert("index page title was "+json['index_page_title']);
});
我确信错误的那一行就是这一行
$rows[$r['option_name']][$r['option_value']][]=$r['option_value'];
我只是想不出我需要修复什么。我的意图是如下调用javascript
<?php
header("Access-Control-Allow-Origin: *");
//set timezone becuase some servers are jsut wrong
define('TIMEZONE', 'Europe/Athens');
date_default_timezone_set(TIMEZONE);
//Connect & Select Database
mysql_connect("somehost","simeuser","somepass") or die("could not connect server");
mysql_select_db("somedbdb") or die("could not connect database");
function getOptions(){
$sqldata = mysql_query("SELECT * FROM `options`");
$rows = array();
while($r = mysql_fetch_array($sqldata)) {
$rows[$r['option_name']][$r['option_value']][]=$r['option_value'];
}
echo json_encode($rows);
}
getOptions();
?>
$.get("http://localhost/test-app/get_app_settings.php",function(data){
var json = JSON.parse(data);
console.log(JSON.stringify(json));
alert("homepage title was "+json['homepage_title']);
alert("index page title was "+json['index_page_title']);
});
我得到的是Object对象,而不是我在Homepage\u title中期望的Homepage和在Index\u page\u title中期望的Index page
我肯定这是件很愚蠢的事,但我看得出来。你这么做的目的是什么
$rows[$r['option_name']][$r['option_value']][]=$r['option_value'];
也许你只想要这个
$rows[$r['option_name']]=$r['option_value'];
你打算怎么做
$rows[$r['option_name']][$r['option_value']][]=$r['option_value'];
也许你只想要这个
$rows[$r['option_name']]=$r['option_value'];
请不要使用,它已经被弃用了(在PHP7中永远消失了),特别是如果你只是在学习PHP,那么就把精力花在学习
PDO
数据库扩展上。这真的很容易,你可以描述一下你真正想要的是什么,作为一个结果,我说过我想说一些类似警报的话(“主页标题是”+json['homepage_title']);警报(“索引页面标题为”+json['index_page_title']);并根据选项名称获取选项值请尝试$rows[$r['option\u name']]=$r['option\u value']代码>请不要使用,它已被弃用(在PHP7中永远消失),特别是如果您只是学习PHP,请花费精力学习PDO
数据库扩展。这真的很容易,你可以描述一下你真正想要的是什么,作为一个结果,我说过我想说一些类似警报的话(“主页标题是”+json['homepage_title']);警报(“索引页面标题为”+json['index_page_title']);并根据选项名称获取选项值请尝试$rows[$r['option\u name']]=$r['option\u value']代码>