如何将文本框值发送到CGI脚本
问题描述:
我有一个ID为kTb的文本框。当我在文本框中输入一些值后点击按钮时,下面的changeV(str)在javascript内调用('onClick =“changeV(kTb.value)”')。 'alert(str)'给了我在文本框中输入的值,但是当我通过'urll ='uSetENV.cgi?kullaTest = str''时,我没有得到输入值,它只是str。请让我知道如何通过/得到输入的值,如果我不清楚,请告诉我,谢谢。如何将文本框值发送到CGI脚本
============================================== ====================================
功能changeV(STR)
{
alert("starting change value");
alert(str);
urll = "uSetENV.cgi?kullaTest=str";
var reqq
//fw_setenv kullaTest str;
if (window.XMLHttpRequest) {
reqq = new XMLHttpRequest();
reqq.open("GET", urll, true);
reqq.setRequestHeader("If-Modified-Since",
"Sat, 1 Jan 2000 00:00:00 GMT");
reqq.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
reqq = new ActiveXObject("Microsoft.XMLHTTP");
if (reqq) {
reqq.open("GET", urll, true);
reqq.setRequestHeader("If-Modified-Since",
"Sat, 1 Jan 2000 00:00:00 GMT");
reqq.send();
}
}
alert("done change value");
}
答
JavaScript没有一个符号来指示变量(即foo
是一个变量,并不需要被命名为$foo
),所以你不能在字符串中进行变量的插值。你必须明确地建立你的字符串。
您还应该使用encodeURIComponent处理URI中具有特殊含义的字符。
urll = "uSetENV.cgi?kullaTest=" + encodeURIComponent(str);
答
使用jQuery - http://api.jquery.com/jQuery.post/
而且使用POST,不是G ET。
alert("starting change value");
alert(str);
$.post('uSetENV.cgi', {'kullaTest': str}, function(data) {
str = data;
alert("done change value");
alert(str);
});
alert('Here str is still not changed because AJAX requests are asynchronous');
非常感谢David Dorward,它正在为我工作。 – chella 2010-09-29 18:59:08