Я успешно создал несколько каскадных выпадающих списков, но не могу получить значения. Раскрывающиеся списки полностью созданы на другой странице, и я не знаю, почему, но я просто предположил, что он также вытянет выбранное имя и выбранное значение из списков. Когда я печатаю_r ($ _ REQUEST), информация о вторичном и третьем раскрывающихся списках вообще отсутствует.
Первая страница - это просто старая форма, например:
<center><div id="country"><b>Country</b></div></center>
</td><td><center><div id="province"><b>Province</b></div></center>
</td><td>
Это JavaScript
function showRecords(str,column,nextDiv)
{
if (str=="")
{
document.getElementById(nextDiv).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(nextDiv).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getRecords.php?"+column+"="+str,true);
xmlhttp.send();
}
Это страница, на которой выпадающие выпадающие списки
<?
require "functions.php";
if(isset($_REQUEST['region'])){
$region=$_REQUEST['region'];
getDepRecords("country","regions","region",$region,"province");
}
if(isset($_REQUEST['country'])){
$country=$_REQUEST['country'];
getDepRecords("province","countries","country",$country,"");
}
?>
Это особая функция
function getDepRecords($column, $table, $depColumn, $dep, $nextDiv) {
echo "<select name =".$column." id=".$column."
onchange=\"showRecords(this.value,'".$column."','".$nextDiv."')\">\n";
$options = "";
if (isset($_REQUEST)) {
$selected = $_REQUEST[$column];
}
$query = "SELECT DISTINCT $column FROM $table WHERE
$depColumn = \"$dep\" ORDER BY $column ASC";
$result = mysql_query($query);
if (!$result) {
$options = "<option>Error Retrieving Records</option>\n";
}
else {
$options.= "<option value = ".NULL.">Select ".$column."</option>\n";
$options.= "<option value = ".NULL."></option>\n";
while ($row = mysql_fetch_assoc($result)) {
$value = $row[$column];
$options.= "<";
$options.= "option value=\"";
$options.= $value . "\"";
if (isset($selected)) {
if (($selected) == ($value)) {
$options.= " selected";
}
$options.= "";
}
$options.= ">";
$options.= $value;
$options.= "</option>\n";
}
}
echo $options;
echo "</select>";
}