我正在使用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);
您要从字符串末尾删除]
。 这就是原因。不知道为什么那条线在那里。