元素列表错误后缺少 ]


Missing ] after element list error

我正在使用ajax来获取用户在"选择"框中选择的内容并将其发送到php文件。然后,我需要使查询结果以及这些选择结果是可下载的。所以重申一下,当他们点击某些东西时,jquery/ajax 会将其发送到 php。PHP 返回一个内容列表供他们再次选择,直到他们选择了五个选项。然后,在选择框下方,会出现一个链接,上面写着导出(下载)。该链接应该将它们发送到 php 函数 export() 以及一个 get 说我需要导出的存储过程名称。以及 5 个选择结果作为存储过程中的参数。希望这是有道理的。这是我的代码。

PHP 将结果发送到 js 文件-------

 $jsStr = '[';
    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $jsStr .= '["'. $row->count_result .'","'. $row->count_desc .'","'. $row->count_SP .'",'. $cn .','. $gp .','. $co .','. $st .','. $dp .']';
        }
        $jsStr = substr($jsStr,0,-1);
    }
    $jsStr .= ']';
    return 'changeResults('. $jsStr .');';

.JS----------------

 function changeResults (data) {
    $('#systems').html(data[0][0] +' - '+ data[0][1] +' <a href="http://95.211.130.165:8080/index.php/discovery/export?sp='+ data[0][2] +'&cn='+ data[0][3] +'&gp='+ data[0][4] +'&co='+ data[0][5] +'&st='+ data[0][6] +'&dp='+ data[0][7] +'">Export</a>');
    $('#users').html(data[1][0] +' - '+ data[1][1] +' <a href="http://95.211.130.165:8080/index.php/discovery/export?sp='+ data[1][2] +'&cn='+ data[1][3] +'&gp='+ data[1][4] +'&co='+ data[1][5] +'&st='+ data[1][6] +'&dp='+ data[1][7] +'">Export</a>');
}

我从萤火虫那里得到的错误

缺少 ] 元素列表之后[中断此错误]

。NV02) - 在选定范围内计数的用户","usr_disc_Inv_usr_content"

,1,1,1,1,1,1])

如果有什么不清楚的地方,请告诉我,谢谢!

让我们清理一下吧!

    $jsArr = array();
    if ($query->num_rows() > 0) {
        foreach ($query->result() as $row) {
            $jsArr[] = array(
                $row->count_result,
                $row->count_desc,
                $row->count_SP,
                $cn,
                $gp,
                $co,
                $st,
                $dp,
            );
        }
    }
    $jsStr = json_encode($jsArr);
    return 'changeResults('. $jsStr .');';

我真的不知道JavaScript或你使用的任何东西。但在我看来,您删除了foreach loop中添加的最后一]

$jsStr = substr($jsStr,0,-1);

我想你在foreach行的末尾有一个逗号.喜欢这个:

foreach ($query->result() as $row) {
    $jsStr .= '["'. $row->count_result .'","'. $row->count_desc .'","'. $row->count_SP .'",'. $cn .','. $gp .','. $co .','. $st .','. $dp .'],';
}

这样对我来说更有意义。为了使括号正确,您必须重新添加此逗号(我认为这是正确的表示法)或删除substr操作。

行:

$jsStr = substr($jsStr,0,-1);

您要从字符串末尾删除]。 这就是原因。不知道为什么那条线在那里。