Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Codeigniter-将json发送到脚本文件_Javascript_Codeigniter_Json_External Script - Fatal编程技术网

Javascript Codeigniter-将json发送到脚本文件

Javascript Codeigniter-将json发送到脚本文件,javascript,codeigniter,json,external-script,Javascript,Codeigniter,Json,External Script,我像这样查询我的模型的数据库 function graphRate($userid, $courseid){ $query = $this->db->get('tblGraph'); return $query->result(); } 我的控制器从我的模型中获取数据,我对其进行json编码,就像这样 if($query = $this->rate_model->graphRate($userid, $courseid)){ $da

我像这样查询我的模型的数据库

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>

您需要将输出json字符串的结果打印到html生成的文件中。 但是您需要使用一些脚本来解析字符串。我建议你:

关于第二个问题。可以通过以下方式实现:

$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"),
  )
);

使用PHP打印输出,如:

echo json_encode($query);
然后从客户端(JavaScript驻留的地方)加载使用PHP打印的JSON。这可以使用JQuery轻松完成

像这样:

$.get("test.php", function(data) {
  alert("Data Loaded: " + data);
});
您可以在此处找到有关此的更多信息:

现在您需要解析这些数据,以便JavaScript能够理解您从服务器获得的文本。为此,您可以在上述示例中的“data”对象上使用JSON.parse方法。解析后,可以像JavaScript中的任何其他对象一样使用该对象。您可以在此处找到关于JSON.parse的更多信息:


我希望这会有所帮助。

问题不是Codeigniter问题,而是javascript作用域/文件包含/where-do-I-get-my-data-from问题

我经常遇到这种情况,并使用了以下解决方案:

  • 使用.php扩展名命名我的php文件,并将其作为视图加载
  • 只是将需要来自视图的数据的脚本放在使用它的视图文件中
  • 在我包含的js文件中使用ajax请求点击控制器并获取json数据
  • 我最常使用#2(对于datatables之类的东西,我希望js代码就在它引用的表旁边)

    我偶尔会使用#1,但尽量不要这样做,因为这意味着一些.js文件在我的webroot/js目录中,一些在application/views目录中,这会让我或任何想要支持此项目的人感到困惑


    #3有时是必要的……但我喜欢避免这种方法,以尽量减少提出的请求数量,并尽量消除完全多余的请求(也就是说).

    如何在script.js中获得这样的信息?为了得到一个更好的答案,我想你必须详细说明你的问题。问题是,我无法让外部脚本文件中的json对象使用它。如果你不向我们提供有关代码实际流的更多信息,我们将无法帮助你。也许@Muhammad Ali的答案可以给你一些想法……请参考对于更新的问题,更多的解释和更多的代码。我现在来看看@Muhammad Ali的代码。如果不想使用ajax,也可以将php文件包含在脚本标记中,或者只是将json回送到脚本标记中的javascript变量中。我应该在哪里回送?从您的代码中,我想您的意思是在控制器中回送它,但这无法实现这就是为什么我不知道如何在外部jQuery文件中加载它
    $.get("test.php", function(data) {
      alert("Data Loaded: " + data);
    });