将Form值传递给xmlhttpPost函数

时间:2011-03-31 12:51:00

标签: javascript ajax

HI

如何将表单中的值传递给将使用该值构建URL的Ajax函数

<FORM id="form" METHOD="GET" ACTION="">
<b> Enter argument: </b>
<input size="40" name="q" value="">
<INPUT TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset">
</FORM>


function xmlhttpPost(){
$tag = q.value
$search = 'http://...&tag=$tag'
$search = encodeURIComponent($search)
request = new ajaxRequest()
request.open("GET","xmlget.php?url=" + $search, true)
...

感谢

3 个答案:

答案 0 :(得分:1)

有几件事:

  1. 您应该使用var

    声明变量
    var $tag = ... ;
    
  2. 你应该给你的<input>一个“id”,并使用“document.getElementById()”来找到元素:

    var $tag = document.getElementById('q');
    
  3. 该值应附加到字符串中,并且只应将其传递给“encodeURIComponent”:

    var $search = 'http://...&tag=' + encodeURIComponent($tag);
    
  4. 编辑 - 一位明智的评论者指出,示例代码中URL的明显用法是,您可能 想要对整个事物进行编码。也就是说,如果您想要做的是通过另一个 URL将URL字符串完全作为参数值传递,那么您可以将整个事件传递给“encodeURIComponent”。关键是你必须确保编码应该由浏览器和服务器解释的位作为URL语法的一部分。因此,上面的第3点可能不适用(确实如此,但它适用于最终的URL,而不是最终作为参数的URL)。

答案 1 :(得分:0)

我可以部分回答你的问题。要从输入控件中获取值,请使用:

document.getElementById("id").value

http://www.w3schools.com/jsref/met_doc_getelementbyid.asp

答案 2 :(得分:-1)

基本上,如果我读得对,你只是问“如何从JavaScript中的文本框中获取价值?”。如果是这样,那么这应该可以解决问题:

<FORM id="form" METHOD="GET" ACTION="">
<b> Enter argument: </b>
<input size="40" name="q" id="q" value="">
<INPUT TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset">
</FORM>

function xmlhttpPost(){
var tag = document.getElementById('q').value;
var search = 'http://...&tag=' + tag;
search = encodeURIComponent(search)
request = new ajaxRequest()
request.open("GET","xmlget.php?url=" + search, true)

注意,输入中的id属性。