makord
Новичок
Код работает, но когда вывожу его через цыкл оп перестает работать( работает только первое выпадающее меню. Подскажите что не так? конфликт массивов?
PHP:
<form name=form action=second.php method=post>
<?php
//////////////////////////////////////////////////
// Здесь соединение с базой данных
//////////////////////////////////////////////////
// Это уже сделано, но для полноты картины приведём
$query = "SELECT * FROM list";
$lst = mysql_query($query);
if(!$lst)
{
echo "Ошибка при выполенении выборки из таблицы LIST";
exit();
}
// Если в таблице есть хоть одна запись - формируем список
if(mysql_num_rows($lst)>0)
{
echo "<select multiple size=".mysql_num_rows($lst)."
name=id_theme onClick=\"javascript:click_first()\">";
while($list = mysql_fetch_array($lst))
{
// Формируем элементы списка
echo "<option value=".$list['id_theme'].">".$list['name'];
}
}
?>
</select>
<select name=second_list multiple size="3" name=id_category showempty>
</select>
<br><input type=submit value="Выбрать категорию">
</form>
<script language='JavaScript1.1' type='text/javascript'>
<!--
function click_first()
{
<?php
// Формируем тело скрипта JavaScript средствами PHP
$query = "SELECT * FROM list";
$lst = mysql_query($query);
if(!$lst)
{
echo "Ошибка при выполенении выборки из таблицы LIST";
exit();
}
// Если в таблице есть хоть одна запись - формируем список
if(mysql_num_rows($lst)>0)
{
$counter = 0;
while($list = mysql_fetch_array($lst))
{
// Тут нужно быть внимательным: массивы в JavaScript начинаются
// с 0, а в таблице нумерация первичного ключа может начинаться
// с 1 - в этом случае от значения $list['id_theme'] нужно вычесть 1
echo "if(this.form.id_theme.options[".($counter++)."].selected){\n";
//echo "if(this.form.id_theme.options[".$list['id_theme']."].selected){\n";
// Формируем и выполняем SQL-зарос на выборку из таблицы SUBLIST
$query = "SELECT * FROM sublist WHERE id_theme=".$list['id_theme'];
$sbl = mysql_query($query);
if(!$sbl)
{
echo "Ошибка при выполенении выборки из таблицы SUBLIST";
exit();
}
//
if(mysql_num_rows($sbl)>0)
{
$tmpnum = 0;
echo "this.form.second_list.length = 0;\n";
while($sublist = mysql_fetch_array($sbl))
{
echo "this.form.second_list.options[$tmpnum] = new Option(\"".$sublist['name']."\",\"".$sublist['id_subtheme']."\");\n";
$tmpnum++;
}
}
echo "}";
}
}
?>
}
//-->
</script>