Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сформировать селекты на основе выборки
 
 автор: ok computer   (30.01.2008 в 11:38)   письмо автору
 
 

запрос возвращает:
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 поменялось. как? заранее спасибо

возможности менять процедуру = запрос - нет.
=>меня интересует, как на основе выборки построить необх. кол-во выпадающих списков.

   
 
 автор: Петр   (30.01.2008 в 13:51)   письмо автору
 
   для: ok computer   (30.01.2008 в 11:38)
 

Как тебе нужно это сделать?
Можно сделать с перезагрузкой страницы (в SELECT onchange="location:index.php")
Можно на JavaScript. но тогда все данные будут загружаться на страницу (будут скрытые)
Можно на Ajax это самый классный способ, но тоже достаточно трудоемкий

   
 
 автор: ok computer   (30.01.2008 в 13:53)   письмо автору
 
   для: Петр   (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:56)   письмо автору
 
   для: ok computer   (30.01.2008 в 13:53)
 

выборка всегда отсортирована по name.
т.е. если встречается name, отличный от предыдущего - формируем новый <select> с option, которые ему соответствуют.

   
 
 автор: ok computer   (31.01.2008 в 07:07)   письмо автору
 
   для: 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 в 08:49)   письмо автору
 
   для: ok computer   (31.01.2008 в 07:07)
 

вопрос решен. забыла @mssql_data_seek($rfilter,0);

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования