Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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/6/codeigniter/3.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 如何通过AJAX将html表单变量传递给perl脚本?_Javascript_Jquery_Html_Ajax_Perl - Fatal编程技术网

Javascript 如何通过AJAX将html表单变量传递给perl脚本?

Javascript 如何通过AJAX将html表单变量传递给perl脚本?,javascript,jquery,html,ajax,perl,Javascript,Jquery,Html,Ajax,Perl,我试图通过POST将html变量从列表菜单传递到perl脚本,但实际情况是jQueryajax()能够执行perl,而不包括从文档.getElementById获取的值。以下是我的HTML代码: Ran调查 请选择部门: --选择一个-- 丹佛 凤凰城西南 波特兰 南休斯顿 诺卡尔 西雅图 沃恩索卡尔 东方的 function surveyFunction(){ var div=document.getElementById(“列表”).value; $.ajax({ 类型:“P

我试图通过
POST
将html变量从列表菜单传递到perl脚本,但实际情况是jQuery
ajax()
能够执行perl,而不包括从
文档.getElementById
获取的值。以下是我的HTML代码:


Ran调查

请选择部门: --选择一个-- 丹佛 凤凰城西南 波特兰 南休斯顿 诺卡尔 西雅图 沃恩索卡尔 东方的

function surveyFunction(){
var div=document.getElementById(“列表”).value;
$.ajax({
类型:“POST”,
url:“possurv.pl”,
数据:div,
成功:功能(结果){
$('#survfeedback').html(结果);
}
});
}

您需要在querystring中包含参数名称,以便为其赋值。我假设这应该遵循作为控件名称的标准实践。在这种情况下,您可以自己构建查询字符串:

data: 'division=' + encodeURIComponent(div),
或者,您可以发送一个对象,让jQuery将其序列化到querystring:

data: { division: div },

我们需要查看Perl程序的相关部分或其文档来回答这一问题,而不必猜测。我很惊讶,它能够执行Perl,因为XHR请求应该被表单提交取消。您忘记将
encodeURIComponent
应用于手动尝试的用户输入。谁说Perl程序要求输入类型为
application/x-www-form-urlencoded
?可能只是检查请求主体,不需要命名参数。@simbabque-这将是一个非常奇怪的边缘情况。期望Perl获取application/x-www-form-urlencoded数据是一个合理的假设。@Quentin我同意,但这仍然是一个假设。Rory在他的第二句话中说了这句话,这很好。不过我还是想提一下,因为如果不看Perl代码,我们就无法知道@昆汀关于
encodeURIComponent
的观点很好,谢谢-答案已更新。