0

私は自分のモデルのデータベースをクエリします

function graphRate($userid, $courseid){
    $query = $this->db->get('tblGraph');
        return $query->result();
}

コントローラーはモデルからデータを取得し、そのように json エンコードします

if($query = $this->rate_model->graphRate($userid, $courseid)){
    $data['graph_json'] = json_encode($query);      
}
$this->load->view('graph', $data);

そして、それは私にそのようなjsonオブジェクトを返します

[
 {"id":"1","title":"myTitle","score":"16","date":"2013-08-02"},
 {"id":"2","title":"myTitle2","score":"17","date":"2013-09-02"},
 {"id":"3","title":"myTitle3","score":"18","date":"2013-10-02"}
]

私のビューグラフでは、jsファイルをロードしています

<script type="text/javascript" src="script.js"></script>

ここで、コントローラーからビュー、外部の script.js に送信される $data を使用して、チャートをフィードするためのラベルとデータとして使用したいと考えています。しかし、そのJsonデータを外部script.jsに取得して使用できるようにするにはどうすればよいですか?

jsonデータについてもう1つ、jsonデータの出力を次のように取得することはできませんか

{
 "obj1":{"id":"1","title":"myTitle","score":"16","date":"2013-08-02"},
 "obj2":{"id":"2","title":"myTitle2","score":"17","date":"2013-09-02"},
 "obj3":{"id":"3","title":"myTitle3","score":"18","date":"2013-10-02"}
}
4

3 に答える 3

0

次のように PHP を使用して出力を印刷します。

echo json_encode($query);

次に、クライアント側 (JavaScript が存在する場所) から、PHP を使用して印刷した JSON をロードします。これは、JQuery を使用して簡単に実行できます。

このような:

$.get("test.php", function(data) {
  alert("Data Loaded: " + data);
});

詳細については、http: //api.jquery.com/jQuery.get/を参照してください。

次に、サーバーからテキストとして取得したものを JavaScript が理解できるように、このデータを解析する必要があります。そのために、前述の例の「データ」オブジェクトで JSON.parse メソッドを使用できます。解析が完了すると、JavaScript の他のオブジェクトと同じようにオブジェクトを使用できます。JSON.parse の詳細については、https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse を参照してください。

それが役立つことを願っています。

于 2013-08-05T21:51:39.123 に答える
0

出力 json 文字列の結果を html 生成ファイルに出力する必要があります。ただし、スクリプトを使用して文字列を解析する必要があります。私はあなたをお勧めします: http://api.jquery.com/jQuery.parseJSON/

2番目の質問について。次のようにすることで可能です:

$returnValue = json_encode(
  array (
    "obj1" => array("id"=>"1","title"=>"myTitle","score"=>"16","date"=>"2013-08-02"),
    "obj2" => array("id"=>"2","title"=>"myTitle2","score"=>"17","date"=>"2013-09-02"),
    "obj3" => array("id"=>"3","title"=>"myTitle3","score"=>"18","date"=>"2013-10-02"),
  )
);
于 2013-08-05T14:59:05.090 に答える