Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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 通过APACHE服务器调用多个perl脚本?_Javascript_Html_Perl_Apache_Cgi - Fatal编程技术网

Javascript 通过APACHE服务器调用多个perl脚本?

Javascript 通过APACHE服务器调用多个perl脚本?,javascript,html,perl,apache,cgi,Javascript,Html,Perl,Apache,Cgi,我对创建web应用程序相当陌生,因此我对在web服务器上工作非常不熟悉。为了让大家知道,我正在实现html、javascript、草莓perl、AJAX,并在Apache2Web服务器上运行。我终于有了我的web应用程序,我有了一个html文件,它调用了我的htdocs目录中的perl脚本。下面是my.html文件的一个模型供参考,这个模型只是提醒用户perl脚本打印的输出: <!DOCTYPE html> <html> <head> <script&g

我对创建web应用程序相当陌生,因此我对在web服务器上工作非常不熟悉。为了让大家知道,我正在实现html、javascript、草莓perl、AJAX,并在Apache2Web服务器上运行。我终于有了我的web应用程序,我有了一个html文件,它调用了我的htdocs目录中的perl脚本。下面是my.html文件的一个模型供参考,这个模型只是提醒用户perl脚本打印的输出:

<!DOCTYPE html>
<html>
<head>
<script>


function loadXMLDoc() {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
    xmlhttp.onreadystatechange=function()
{
var str;
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// Get output from perl script and print it
str = xmlhttp.responseText;
alert(str);
}
}
xmlhttp.open("GET","http://localhost/try.pl" , false); //perl script
xmlhttp.send();
}
</script>
</head>
<body>

<h2>Example</h2></div>
<button type="button" onclick="loadXMLDoc()">Display</button>

</body>
</html>
因此,这个文件test.html调用同一目录中的perl脚本[try.pl]。此外,perl脚本只打印一个数字,因此这会提醒用户该数字。这只是我实现的一个示例。我的实际perl脚本和java脚本[在就绪状态块内]要复杂得多。现在,我必须为我的web应用程序添加功能,因此,对于我的问题:

我希望在发生不同事件时运行第二个单独的perl脚本。例如,单击按钮时,将运行此perl脚本。我将有另一个不同的事件,比如双击一个图标什么的,需要调用第二个perl脚本。我是否会让新的事件调用一个不同的函数[第一个被称为Loadxmldoc],它与我在这里使用的函数几乎相同,只是它在就绪状态块中有不同的代码,并在末尾调用不同的perl脚本?对于如何实现这一点,我有点困惑

此外,如果在javascript代码中有一个文件名列表,则需要使用perl脚本处理每个文件。目前我只处理一个,所以调用这里的perl脚本就可以了。我在互联网上到处寻找,试图找到我将如何做到这一点,但似乎每个解释都只涉及如何调用CGI脚本。因此,在我的代码中,比如我提醒用户的位置,我将有一个存储文件名的数组。我需要迭代这个数组,对于每个文件名[array element],我需要调用相同的perl脚本来处理该文件。我应该如何着手实施这一点?目前,我的html文件只调用perl脚本一次,我不知道如何为每个文件调用它,因为我的GET命令不在我的就绪状态块中


任何帮助或指导都将不胜感激。我预计很快就会交付,并且花了太多时间筛选重复的示例,这些示例对我没有帮助……:/

至于概括AJAX请求,您可以创建一个函数,或者更确切地说,创建一组函数来处理不同类型的响应,如下所示:

var requests = [];
requests['script1'] = "http://localhost/try.pl";
requests['script2'] = "http://localhost/try2.pl";
var response_processing = [];
response_processing['script1'] = function (xmlhttp) {
    var str = xmlhttp.responseText;
    alert(str);
};
// Here, you can add more functions to do response processing for other AJAX calls, 
under different map keys.
现在,在AJAX代码中,根据传递给loadXMLDoc调用的脚本名调用适当的请求和响应处理器,如下所示:loadXMLDocscript1

function loadXMLDoc(script_name) {

    // Your generic AJAX code as you already implemented

    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        response_processing[script_name](xmlhttp);
        // Careful so script_name doesn't get closured in onreadystatechange()
    }
    }
    xmlhttp.open("GET", requests[script_name], false); //perl script
    xmlhttp.send();
}