我有一些非常相似的东西:
<select name="selectProject" id="selectID" onChange="showUser(this.options[selectedIndex].value)">
<?php
// Loop through and list each project
foreach ($var as $row) {
echo '<option value="'.$row['projectNumber'].'">'.$row['projectName'].'</option>';
}
?>
</select>
<label>Project Name</label>
<input id="projectName" type="text" class="span3" name="projectName">
上面只是调用了 showUser 函数,参数是 projectNumber
然后在下面我有:
<SCRIPT TYPE="text/javascript">
// Function to fill in form fields
function showUser(str)
{
if (str=="")
{
document.getElementById("").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)
{
var obj = eval('(' + this.responseText + ')');
document.getElementById("projectName").value=obj.projectname;
}
}
xmlhttp.open("GET","http://url.com/ajax/"+str,true);
xmlhttp.send();
}
</SCRIPT>
此脚本将调用 url url.com/ajax/whateverIdIsSelected
在该页面上,您希望对查询执行任何操作。
至于返回什么,我已经设置为使用 json,这就是为什么我有这条线
var obj = eval('(' + this.responseText + ')');
this.reponseText 是从 ajax 页面返回的内容。我的回电看起来像这样
$projectData = json_encode($project);
echo $projectData;
其中 $project 是一个包含项目属性的数组。
我不太擅长 ajax 或 js,但我以我喜欢的方式工作。如果您有任何问题,请告诉我