从php到javascript获取格式正确的json?

从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

我有一个数据库,其中有一个名为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 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']