从PHP到javascript正确格式化json?

时间:2016-07-30 19:26:33

标签: php jquery json

我有一个带有tabled命名选项的数据库。在这张表中我有3个字段

  1. 类型为int autoincrement的id
  2. varchar类型的option_name
  3. varchar类型的option_value
  4. 假设我已经将以下内容添加到

    1. ' 1'' homepage_title''首页'
    2. ' 2',' index_page_title',' Index Page'
    3. 我有一个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();
      ?>
      

      它起作用,因为脚本返回类似这样的内容

      {"homepage_title":{"Home":["Home"]},"index_page_title":{"index page":["index page"]}}
      

      我确定不正确的行就是这一行

      $rows[$r['option_name']][$r['option_value']][]=$r['option_value'];
      

      我无法弄清楚我需要修复的内容。我的意思是调用javascript如下

      $.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_title中预期的主页以及我期望在index_page_title中的索引页。

      我确信它真的很蠢,但我只能看到它。

1 个答案:

答案 0 :(得分:0)

你打算这样做的目的是什么?

$rows[$r['option_name']][$r['option_value']][]=$r['option_value'];

也许你想要这个?

$rows[$r['option_name']]=$r['option_value'];