我有一个包含用户名,地址和电子邮件的表单。 名单列表来自数据库,我需要做的是,当我选择用户名时,地址和电子邮件信息填充其他2个字段(我有另一个字段,但我只需要那些填写) 我正在使用php和mysql数据库
答案 0 :(得分:1)
这可能不是最佳的 - 实际上我不肯定它是有效的,因为我根本没有测试它,但我相信如果它不起作用你会弄明白:
假设您的表单有一个名称=“personInfo”,名称下拉列表中有name =“personName”,地址是一个名为“address”的文本输入字段。
在personName中选择标签添加
onChange="updateValues()"
然后你需要一些类似这样的javascript:
function updateValue() {
var addresses = new Array();
<?php
//add some php code to populate the java array. Something like
for ($i=0; $i<$numAddresses; $i++) {
echo 'addresses['.$i.'] ='.$addressFromDB[$i].';';
}
?>
document.personInfo.address.value = addresses[document.personInfo.personName.selectedIndex];
}
并为电子邮件重复同样的事情
答案 1 :(得分:0)
显然,你必须修改它以匹配你的元素ID等,但这对我有用。
这是你的HTML:
<script type="text/javascript">
function grabInfo(str)
{
if (str=="")
{
document.getElementById("contentDiv").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("contentDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getinfo.php?q="+str,true);
xmlhttp.send();
}
</script>
<select name="users" onchange="grabInfo(this.value)">
<option value="" selected="selected">Select a person:</option>
<option value="1">Person A</option>
<option value="2">Person B</option>
</select>
<div id="contentDiv">
</div>
后端PHP(getinfo.php):
<?php
$q=$_GET["q"];
//MySQL connection string
$sql="SELECT * FROM <table> WHERE <parameter> = '".$q."'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo '<input type="text" id="address" value="' . $row['address'] . '">';
echo '<input type="text" id="email" value="' . $row['email'] . '">';
}
?>
contentDiv
将显示两个文本框。 getinfo.php
将成为实际操作数据库的PHP。