gpt4 book ai didi

mysql - js $.ajax 调用 perl,需要显示返回 fetchall_arrayref 的 perl

转载 作者:行者123 更新时间:2023-11-29 06:31:45 25 4
gpt4 key购买 nike

我的 $.ajax 正在调用一个 Perl 文件,该文件在 fetchall_arrayref 中从 MySQL 返回数据.我怎样才能将数据返回到 ajax 并放入 <select> jQuery 中的下拉选项?它从 perl 返回一些东西,但是 <select>下拉显示整个ajaxFunctions.pl file, char by char - 每个字符都是一个选择。它需要调用 Perl 文件,在那里执行 mySQL SELECT,并将 SELECT 查询结果返回给 $.ajax “数据”部分,以便我可以在 GUI 中显示它。我测试了 MySQL 查询,它工作正常 [返回 3 个项目,组名]。

这是 perl 代码:

if ($q->param('ajaxAction') eq "getGroups") {
my $return;
eval {
my $query = qq(SELECT DISTINCT group FROM dbtable ORDER BY group);
my $dbh = dbConnect();
my $sth = $dbh->prepare($query);
$sth->execute();
$return = $sth->fetchall_arrayref();
};
if ($@) {
$return = {'STATUS' => 'FAIL',
'ERROR' => 'Error getting the group names. ' . $@};
}
print $q->header('application/json');
print to_json($return);
exit(0);
}

这是 Javascript 代码:

function getGroups() {
$.ajax({
type: 'POST',
url: '/Project/metrics/cgi-bin/ajaxFunctions.pl',
data: ({ ajaxAction: 'getGroups'}),
success: function(data) {
for(var i =0; i < data.length; i++) {
$("#groupReportSelect").append('<option value="' + data[i] + '">&nbsp;&nbsp;' + data[i] + '</option>');
}
$('#groupReportSelect').multiselect();
$("#groupReportSelect").multiselect("checkAll");
getData();
},
error: function(request, status, err) {
console.log('Error fetching groups. ' + err);
}
});

再次,输出是选择中的每个选项是整个 perl 文件的单个字符,以 "#", "!", "/", of #!/usr/bin/perl 开头,等等,等等

如果我遗漏了什么,请告诉我。我已阅读其他几篇文章,并试图为您提供所有适当的数据来回答我的问题。

最佳答案

您的 AJAX 请求似乎正在获取对象的 url: 属性中列出的整个 perl 文件( '/Project/metrics/cgi-bin/ajaxFunctions.pl',) 而不是 REQUEST 到该 URI 的输出。

这很可能是由于您的 CGI 和 HTTP 服务器环境设置不当造成的。您的 Web 服务器需要设置 CGI Handler 以将 .pl 文件正确地作为应用程序而不是文件提供。

关于mysql - js $.ajax 调用 perl,需要显示返回 fetchall_arrayref 的 perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27516587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com