Укажите и поправьте, если не сложно, мою ошибку.
Проблема в следующем. Делаю выпадающие селекты. Данные беру из бд. Вроде все работает. Но когда я хочу сделать 2 такие формы, назначая уникальные имена и айдишники селектам, с применением переменной, ничего не получается.
Отрывок из кода для сравнения(рабочий):
php:
<?php
include ("connect.php");
function obraz()
{
$obraz_id = isset($_POST['obraz_id'])?$_POST['obraz_id']:NULL;
$query = "SELECT * FROM `".PREFIX."obraz`";
$res = mysql_query($query);
$select = "<select id=\"obraz_id\" name=\"obraz_id\" onchange=\"Obraz()\" >
<option value='0'>……….</option>";
while($row = mysql_fetch_array($res))
{
$select .= "<option ";
if($row['obraz_id'] == $obraz_id)
$select .="selected=\"selected\"";
$select .= " value='".$row['obraz_id']."'>".$row['name']."</option>\r\n";
}
$select .= "</select>";
return $select;
}
?>
Javascript:
function Obraz()
{
div_select = "predmet";
d.getElementById('uch').innerHTML = '';
var a = d.getElementById('obraz_id').value;
query = "obraz_id="+a;
Request(query);
}
Так все работает. Чтобы использовать эти селекты на одной странице еще раз как минимум, нужно назначить какую то численную переменную уникальным именам и айдишникам селектов, а так же создать хидден поле и брать значение у него для жабаскрипта. Так и делаю:
php:
<?php
function obraz()
{
$obraz_id = isset($_POST['obraz_id'.$j])?$_POST['obraz_id'.$j]:NULL;
$query = "SELECT * FROM `".PREFIX."obraz`";
$res = mysql_query($query);
$select = "<select id=\"obraz_id".$j."\" name=\"obraz_id".$j."\" onchange=\"Obraz()\" >
<option value='0'>……….</option>";
while($row = mysql_fetch_array($res))
{
$select .= "<option ";
if($row['obraz_id'] == $obraz_id)
$select .="selected=\"selected\"";
$select .= " value='".$row['obraz_id']."'>".$row['name']."</option>\r\n";
}
$select .= "</select>";
return $select;
}
?>
Javascript:
j=parseFloat(document.form1.j.value);
function Obraz()
{
div_select = "predmet";
d.getElementById('uch').innerHTML = '';
var a = d.getElementById('obraz_id'+j).value;
query = "obraz_id"+j+"="+a;
Request(query);
}
$j передается, проверял. Видимо что то не так делаю, когда назначаю именам и айдишникам значения. Вот такая прабла…