我正在尝试将两个变量传递给这个AJAX函数,我该怎么做呢?
function showInfo(str)
{
if (str=="")
{
document.getElementById("txt").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txt").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","query1test.php?"+str,true);
xmlhttp.send();
我想要传递给AJAX请求的是lname和年份?有没有办法解决这个问题?
<input type="text" name="lname" Onchange="showUser(this.value)"> <br>
<select name="year" >
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
</select> <br>
<input type="submit" value="submit">
感谢您的帮助,我还是初学者。
答案 0 :(得分:5)
我本来会使用JQuery。如果您使用不同的浏览器会更容易。 Ajax部分(获取请求)由一行完成,您可以使用选择器来查找所需的值。
在这段代码中,我为名为“lname”的输入设置了onchange事件。触发onchange事件时,我从name字段获取值,从select元素获取year。然后我向query1test.php
发送获取请求。
$(document).ready(function() {
$('input[name="lname"]').change(function() {
var name = $('input[name="lname"]').val();
var year = $('select[name="year"]').val();
$.get('query1test.php?name='+name+'&year='+year);
});
});
在PHP脚本(query1test.php
)中,您可以从$ _GET中检索值。例如:
<?php
$name = $_GET['name'];
$year = $_GET['year'];
echo $name . ' - ' . $year;
您可能希望对PHP脚本返回的数据执行某些操作。一个例子是:
$.get('query1test.php?name='+name+'&year='+year, function(data) {
alert(data);
});
答案 1 :(得分:0)
我不知道你传递的内容是什么,但是根据事物的外观,它应该是你的查询字符串 - 这是你问题的答案。所以在我的回复中,我将用没有任何验证的情况替换str:
xmlhttp.open("GET","query1test.php?lname="+document.getElementById("lname").value+"&year="+document.getElementById("year").value,true);
此外,我会为您的文字输入添加一个lname的id,并为您的选择提供一年的ID。
<input type="text" id="lname" name="lname" Onchange="showUser(this.value)"> <br>
<select id="year" name="year" >
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
</select> <br>
<input type="submit" value="submit">
这会将您的请求作为$ _GET vars传递。
为什么你不想为此使用jQuery?