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)
...
感谢
答案 0 :(得分:1)
有几件事:
您应该使用var
var $tag = ... ;
你应该给你的<input>
一个“id”,并使用“document.getElementById()”来找到元素:
var $tag = document.getElementById('q');
该值应附加到字符串中,并且只应将其传递给“encodeURIComponent”:
var $search = 'http://...&tag=' + encodeURIComponent($tag);
编辑 - 一位明智的评论者指出,示例代码中URL的明显用法是,您可能 想要对整个事物进行编码。也就是说,如果您想要做的是通过另一个 URL将URL字符串完全作为参数值传递,那么您可以将整个事件传递给“encodeURIComponent”。关键是你必须确保编码应该由浏览器和服务器解释不的位作为URL语法的一部分。因此,上面的第3点可能不适用(确实如此,但它适用于最终的URL,而不是最终作为参数的URL)。
答案 1 :(得分:0)
我可以部分回答你的问题。要从输入控件中获取值,请使用:
document.getElementById("id").value
答案 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属性。