我将首先说我一直在这里使用这个例子:
它是为城市/州等制定的,但我只是想让它与我的数据库一起使用,所以我正在提取员工信息,但在某些地方仍然有他的城市/州文本,所以看起来有点奇怪.
同样,目前我只是想让它与 2 个下拉菜单一起工作,而不是全部 3 个。
无论如何,这就是我到目前为止所拥有的,我正在努力让它为我工作。有人能指出我哪里出错了吗?
这是我在index.php中的内容,它基本上与我将国家名称换成与数据库中的几个(假)员工 ID 相关联的员工 ID 完全相同。
<form method="post" name="form1">
<table border="0" cellpadding="0" cellspacing="0" width="60%"><tbody>
<tr>
<td width="150">Country</td>
<td width="150"><select style="background-color: #ffffa0" name="country" onchange="getState(this.value)">
<option>Select Country</option><option value="1">mg05</option>
<option value="2">aa01</option></select>
</td>
</tr>
<tr>
<td>State</td>
<td>
<p id="statediv">
<select style="background-color: #ffffa0" name="state">
<option>Select Country First</option></select>
</td>
</tr>
</tbody></table>
</form>
这是我启动 ajax 请求的index.php底部的 javascript 。请注意,在他使用 mysql 数据库的示例中,我使用 ODBC 访问 Access 数据库,因此请记住这一点。
<script type="text/javascript">
function getState(countryId)
{
var strURL="findState.php?country="+countryId;
var req = getXMLHTTP();
if (req)
{
req.onreadystatechange = function()
{
if (req.readyState == 4)
{
// only if "OK"
if (req.status == 200)
{
document.getElementById('statediv').innerHTML=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
下面是我的findState.php文件中的内容,我必须调整几件事以考虑到他使用 mysql 数据库和我使用 ODBC 访问 Access 数据库的事实。
<?
$country=$_POST['country'];
//make connection to database, bail if no connection
$connection = odbc_pconnect('db','','');
if (!$connection) { exit("Connection Failed: " . $connection); }
//retrieve usernames and passwords
$query = "SELECT (EName) FROM LoginTable WHERE EmployeeID='$country'";
$result = odbc_exec($connection, $query);
?>
<select name="state">
<option>Select State</option>
<? while($row = odbc_fetch_row($result,'EName')){ ?>
<option value=<?=$row['EName']?>><?=$row['EName']?></option> //Error on this line
<? } ?>
</select>
它给我的只是有一个错误,未定义变量:第 22 行的行,我已对此进行了评论。它两次显示此错误,这意味着我引用 $row 的两个实例都无效。
任何帮助或见解?我真的很感激!!