2011-12-08 41 views
2

我想将两个变量传递给这个AJAX函数,我该怎么做呢?如何将多个变量从ajax传递给php?

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和year?有没有办法去解决这个问题?

<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

我不知道你作为str传递了什么,但是通过外观的东西,它有望成为你的查询字符串 - 你的问题的答案。所以在我的回应,我会那会是什么,没有任何验证的替代STR:

xmlhttp.open("GET","query1test.php?lname="+document.getElementById("lname").value+"&year="+document.getElementById("year").value,true); 

而且除了我会给L-NAME的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变量。

任何你不想为此使用jQuery的原因?

+0

谢谢Kai_Qing。没有使用jQuery的具体原因,不太熟悉它。 – user1087799

5

为此,我会使用JQuery。如果您使用不同的浏览器,则会更容易。 Ajax部分(获取请求)用一行完成,您可以使用选择器来查找所需的值。

在这段代码中,我为名为“lname”的输入设置了onchange事件。当onchange事件触发时,我从name字段获取值,并从select元素获取年份。然后我发送获取请求到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 retrive值。例如:

<?php 

$name = $_GET['name']; 
$year = $_GET['year']; 

echo $name . ' - ' . $year; 

您可能想对PHP脚本返回的数据做些什么。一个例子是:

$.get('query1test.php?name='+name+'&year='+year, function(data) { 
    alert(data); 
}); 
+0

谢谢!我会对它进行修补。 – user1087799