Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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 Ajax JSON异常意外标记[_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Javascript Ajax JSON异常意外标记[

Javascript Ajax JSON异常意外标记[,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,嗨,我有一个页面包含一个链接,当用户单击该链接时,我想转到数据库并检索两个数组,但当我提醒这两个数组时,我得到了这个异常 Unexpected token [ 这是我的js代码 function acNewConcpet(element){ var parent = element.parentNode; parent.removeChild(element); var concpetSelect = document.createElement('select');

嗨,我有一个页面包含一个链接,当用户单击该链接时,我想转到数据库并检索两个数组,但当我提醒这两个数组时,我得到了这个异常

Unexpected token [
这是我的js代码

function acNewConcpet(element){
    var parent = element.parentNode;
    parent.removeChild(element);
    var concpetSelect = document.createElement('select');
    var relationSelect = document.createElement('select');
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange=function(){
        if(xmlhttp.readyState==4 &&  xmlhttp.status==200){
            var data = JSON.parse(xmlhttp.responseText);
            alert(data);
        }

    }
    xmlhttp.open("GET","http://localhost/Mar7ba/Ontology/getRelatedConceptsAndRelations/"+"concept"+"/TRUE",true);
    xmlhttp.send();
}
这是我的php代码

public function getRelatedConceptsAndRelations($concpetName, $Ajax) {
        if ($Ajax) {
            $concepts = array('c1', 'c2');
            $relations = array('r1','r2');
            echo json_encode($concepts);
            echo json_encode($relations);
        }
        return;
}
为什么会出现这种异常?如何解决它?如何在js中接收这两个数组? 这是完整的JSON代码。parse只能解析单个JSON文本


您应该将两个数组组合成一个具有两个属性的对象。

当您响应JSON时,它需要是一个JSON,但您要发送两个单独的数组

将这两个JSON合并为一个

更新:

这样做:

public function getRelatedConceptsAndRelations($concpetName, $Ajax) {
    if ($Ajax) {
        $concepts = array('c1', 'c2');
        $relations = array('r1','r2');
        echo json_encode(array($concepts, $relations));
    }
    return;
}

您返回的JSON格式不正确。据我从您的代码中了解,它会打印出以下JSON:

['c1','c2']['r1,r2']
您不能有两个这样的数组。您必须按如下方式打印:

[['c1','c2'],['r1','r2']]
很抱歉,我的PHP生锈了,但您必须具有以下内容:

$json = array(
    array('c1','c2'),
    array('r1','r2')
);

echo json_encode($json);
既然您使用的是jQuery,为什么不使用


你的术语不太正确。是的,我知道,为什么我仍然使用这个术语…我的错。仍然是相同的错误,但你在你的数组中帮助了我,真的,你是对的,我应该把它们作为一个数组,谢谢你,我从来没有用JSON尝试过jQuery,我现在会尝试你的建议。是这样吗?document.readyfunction{$'.smallLink'.clickfunction{$.getJSONurl,function retur{};};你是说像这样的$newArrya=array$concepts,$relations?如果你是这个意思,那么我就这么做了,但仍然看到了那个异常
$.getJSON(url,function(returnData){
    //returnData is the parsed JSON
});