如何将文本框值发送到CGI脚本

时间:2010-09-29 18:11:14

标签: javascript cgi query-string

我有一个id为kTb的文本框。当我在文本框中输入一些值后单击按钮时,在javascript('onClick =“changeV(kTb.value)”')内调用下面的changeV(str)。 'alert(str)'给出了我在文本框中输入的值,但是当我传递它'urll =“uSetENV.cgi?kullaTest = str”'时,我没有得到输入的值,它只是str。能告诉我如何通过/获取输入值,如果我不清楚,请告诉我,谢谢。

=============================================== ===================================

function 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");

}

2 个答案:

答案 0 :(得分:1)

使用jQuery - http://api.jquery.com/jQuery.post/

使用POST,而不是GET。

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');

答案 1 :(得分:1)

JavaScript没有用于表示变量的符号(即foo是变量而不需要命名为$foo),因此您无法在字符串中执行变量插值。你必须明确地构建你的字符串。

您还应该使用encodeURIComponent处理URI中具有特殊含义的字符。

urll = "uSetENV.cgi?kullaTest=" + encodeURIComponent(str);