Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамические select'ы (AJAX), Как вывести selected опшены?  
:(
    Опции темы
ityler
Дата 28.1.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.7.2008

Репутация: нет
Всего: нет



Есть отличный код для динамического вывода данных select'ов с без перезагрузки.

Код используется для поиска объектов. Все прекрасно работает, НО хоть убейте не могу понять как сделать, чтобы при показе результатов поиска в select'ы автоматически показывались (selected) выбраные ранее опшены..

Код

function Inint_AJAX() {
   try { return new ActiveXObject(\"Msxml2.XMLHTTP\");  } catch(e) {} //IE
   try { return new ActiveXObject(\"Microsoft.XMLHTTP\"); } catch(e) {} //IE
   try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
   alert(\"XMLHttpRequest not supported\");
   return null;
};

function dochange(src, val) {
     var req = Inint_AJAX();
     req.onreadystatechange = function () { 
          if (req.readyState==4) {
               if (req.status==200) {
                    document.getElementById(src).innerHTML=req.responseText; //
               } 
          }
     };
     req.open(\"GET\", \"/js/location/locale_ofc.php?data=\"+src+\"&val=\"+val); //
     req.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded;charset=windows-1251\"); // set Header
     req.send(null); //
}

window.onLoad=dochange('region', -1); 



Код

   //
     header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
     header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
     header ("Cache-Control: no-cache, must-revalidate");
     header ("Pragma: no-cache");
     header("content-type: application/x-javascript; charset=windows-1251");
     $data=$_GET['data'];
     $val=$_GET['val'];

     //
$dbhost = "localhost";
$dbuser = "xxxxx";
$dbpass = "xxxxx";
$dbname = "xxxxx";
mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");  
     if ($data=='region') { 
          echo "<select name='region' onChange=\"dochange('district', this.value), dochange('metro', this.value), dochange('name', this.value)\">\n";
          echo "<option value=''>-----Выбрать-----</option>\n";
          $result=mysql_db_query($dbname,"SELECT location_ID, location_name FROM Classificator_location WHERE location_comment LIKE 'reg' order by location_name");
          while(list($id, $name)=mysql_fetch_array($result)){
               echo "<option value=\"$id\">$name</option> \n" ;
               }
          }
     
    if ($data=='district') {
          echo "<select name='district'>\n";
          echo "<option value=''>-----Выбрать-----</option>\n";
          $val2=$val;
          $val = substr($val,0,6);                                 
          $result=mysql_db_query($dbname,"SELECT location_ID, location_name FROM Classificator_location WHERE location_ID != '$val2' AND location_ID LIKE '$val%' AND location_comment LIKE 'disreg' ORDER BY location_name");
          while(list($id, $name)=mysql_fetch_array($result)){
               if ($id==$sel2){
               echo "<option value=\"$id\">$name</option> \n" ;
               }
          }
   
    
     
    else if ($data=='metro') {
          echo "<select name='metro'>\n";
          echo "<option value=''>-----Выбрать-----</option>\n";
          $val2=$val;
          $val = substr($val,0,6);                                 
          $result=mysql_db_query($dbname,"SELECT location_ID, location_name FROM Classificator_location WHERE location_ID != '$val2' AND location_ID LIKE '$val%' AND location_comment LIKE 'met' ORDER BY location_name");
          while(list($ID, $name)=mysql_fetch_array($result)){       
               echo "<option value=\"$ID\">$name</option> \n" ;
          }
     } 
      echo "</select>\n"; 
    

PM MAIL   Вверх
skyboy
Дата 28.1.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



Цитата(ityler @  28.1.2009,  15:03 Найти цитируемый пост)
чтобы при показе результатов поиска

сами результаты поиска тоже при помощи ajax выводятся или с перезагрузкой страницы? 
если при помощи ajax - не понятно, почему это состояние выбранных элементов сбрасывается и проблему надо искать в javascript-коде.
если поиск реализован с перезагрузкой страницы, значит, отправляется некая форма(<form>) на сервер, и в числе прочих данных - перечень выбранных значений в <select>. и следовательно, надо всего лишь подправить скрипт, формирующий результаты поиска, чтоб он формировал и список выбранных опций.

PM MAIL   Вверх
Aliance
Дата 28.1.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Код

while ( list( $id, $name ) = mysql_fetch_array( $result ) )
{
    if ( $id == выбранный )
    {
        echo "<option value=\"$id\" selected=\"selected\">$name</option> \n" ;
    }
    else
    {
        echo "<option value=\"$id\">$name</option> \n" ;
    }
}


Сложно что-то более подробно сказать без HTML кода и SQL Dump.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.