2

我正在使用 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])

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

4

3 回答 3

4

让我们把它清理干净!

    $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 .');';
于 2012-04-12T18:21:39.407 回答
3

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

$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操作。

于 2012-04-12T18:16:23.920 回答
3

该行:

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

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

于 2012-04-12T18:15:36.350 回答