|
|
|
| запрос возвращает:
id name value check
1 сегодня 3 1
2 сегодня 16 0
3 сегодня 5 0
формирую 1 селект
echo $resname['name'].':';
@mssql_data_seek($rfilter,0);
echo '<select name=today size=1>';
while($resf=mssql_fetch_assoc($rfilter))
{
if ($resf['check']==1)
{
$select="selected";
}
else
{
$select=" ";
}
echo '<option value='.$resf['id'].' '.$select.' >'.$resf['value'].'</option>';
}
echo '</select>';
|
если запрос (сортировка по name) возвращает:
id name value check
1 сегодня 3 1
2 сегодня 16 0
3 сегодня 5 0
4 вчера 25 0
5 вчера 14 1
6 все данные 20 1
необходимо сформировать 3 селекта. т.е формируем нов. селект, когда name поменялось. как? заранее спасибо
возможности менять процедуру = запрос - нет.
=>меня интересует, как на основе выборки построить необх. кол-во выпадающих списков. | |
|
|
|
|
|
|
|
для: ok computer
(30.01.2008 в 11:38)
| | Как тебе нужно это сделать?
Можно сделать с перезагрузкой страницы (в SELECT onchange="location:index.php")
Можно на JavaScript. но тогда все данные будут загружаться на страницу (будут скрытые)
Можно на Ajax это самый классный способ, но тоже достаточно трудоемкий | |
|
|
|
|
|
|
|
для: Петр
(30.01.2008 в 13:51)
| | запрос
$q="exec period_data $param1, $param2";
упрощенно.
передаем getом $param1=1;$param2=0 - получили 1 -ую выборку (необходимо получить один <select> "сегодня" , где option - 3,16,5) - это получается.
$param1=0;$param2=2 - получили 2 -ую выборку (необходимо получить 3 <selectа> "сегодня" - значения option 3,16,5; "вчера" -25,14 , "все" - 20)
нужно получить определнное кол-во селектов в зависимости от выборки. ajax здесь не нужен. | |
|
|
|
|
|
|
|
для: ok computer
(30.01.2008 в 13:53)
| | выборка всегда отсортирована по name.
т.е. если встречается name, отличный от предыдущего - формируем новый <select> с option, которые ему соответствуют. | |
|
|
|
|
|
|
|
для: ok computer
(30.01.2008 в 13:56)
| | не отображается 1-ое значение $resf['value']. в выборке query analizer всегда на 1 больше.
$counter= 0;
$old_name= '';
while($resf=mssql_fetch_assoc($rfilter)) {
if($old_name !== $resf['name']) {
if($old_name !== '')
echo '</select>';
echo '<tr><td align="right">'.$resf['name'].': ';
echo '<select name="id'.$counter.'" size=1 onchange="this.form.submit()">';
$counter++;
}
if ($resf['check']==1)
{
$select="selected";
}
else
{
$select=" ";
}
echo '<option value='.$resf['id'].' '.$select.'>'.$resf['value'].'</option>';
$old_name = $resf['name'];
}
if($old_name !== '')
echo '</select>';
}
echo '</td></form></tr>';
|
| |
|
|
|
|
|
|
|
для: ok computer
(31.01.2008 в 07:07)
| | вопрос решен. забыла @mssql_data_seek($rfilter,0); | |
|
|
|