За последние 24 часа нас посетили 52605 программистов и 1764 робота. Сейчас ищут 810 программистов ...

О наболевшем... (Select)

Тема в разделе "JavaScript и AJAX", создана пользователем Kocapb, 10 июн 2010.

  1. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    Здравствуйте, есть два селекта.
    Оperator:
    HTML:
    1.  
    2.  <select name="operator" onchange="if (this.selectedIndex) this.form.submit()">
    3.         <option disabled selected>Выберите оператора...</option>
    4.        
    5.         <?php        
    6.          $null = 0;
    7.          $select_operator_name = "Все операторы...";
    8.    
    9.          $select_operator .= "<option value='".$null."'";
    10.          if($null ==  $_REQUEST['operator']) $select_operator .= " selected ";
    11.          $select_operator .= ">".$select_operator_name."</option>";
    12.  
    13.           if ($res = mysql_query("SELECT * FROM `operators`
    14.                                   ORDER BY `surname`
    15.                                  "))
    16.           {
    17.           while ($row = mysql_fetch_assoc($res))
    18.           {
    19.               $select_operator .= "<option value='".$row['id']."'";
    20.              if($row['id'] ==  $_REQUEST['operator']) $select_operator .= " selected ";
    21.              $select_operator .= ">".$row['surname']." ".$row['name']."</option>";              
    22.                            
    23.               //echo '<option value="'.$row['id'].'">'.$row['surname'].' '.$row['name'].'</option>';
    24.           }
    25.             echo $select_operator;
    26.           }
    27.         ?>      
    Model:
    HTML:
    1.  
    2.  <select name="model" onchange="if (this.selectedIndex) this.form.submit()">
    3.         <option disabled>Выбирите модель...</option>
    4.                  
    5.         <?php
    6.          $null = 0;
    7.          $select_model_name = "Все модели...";
    8.    
    9.          $select_model .= "<option value='".$null."'";
    10.          if($null == $_REQUEST['model']) $select_model .= " selected ";            
    11.          $select_model .= ">".$select_model_name."</option>";
    12.  
    13.           if ($res = mysql_query("SELECT * FROM `models`
    14.                                   ORDER BY `surname`
    15.                                  "))
    16.           {
    17.           while ($row = mysql_fetch_assoc($res))
    18.           {
    19.               $select_model .= "<option value='".$row['id']."'";
    20.              if($row['id'] ==  $_REQUEST['model']) $select_model .= " selected ";
    21.              $select_model .= ">".$row['surname']." ".$row['name']."</option>";              
    22.               //echo '<option value="'.$row['id'].'">'.$row['surname'].' '.$row['name'].'</option>';
    23.           }
    24.             echo $select_model;
    25.  
    26.           }
    27.         ?>            
    28.        
    29.  
    Необходимо чтобы когда select_operator.value != 0 тогда у select_model.value равного 0 было свойство selected.
    И наоборот,
    Необходимо чтобы когда select_model.value != 0 тогда у select_operator.value равного 0 было свойство selected.
    Заранее спасибо за любую помощь.
     
  2. mutabor

    mutabor Активный пользователь

    С нами с:
    16 июн 2010
    Сообщения:
    5
    Симпатии:
    0
    как я понял, применяя библиотеку JQuery достаточно на селекты поввесить событие onchange и в нем обробатывать :
    Код (Text):
    1. if ($("#id_select_1").val()==0) {$("#id_select_2").find("option[index='0']").attr("selected","selected");}
     
  3. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    хмм... надо попробовать.
     
  4. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    сделал следующие:
    1. Скачал библиотеку JQuery
    2. Залил ее в файл и прикрепил к странице:
    HTML:
    1.  
    2.   <script type="text/javascript" src="../function/js/jquery.js"></script>
    3. </head>
    добавил функцию:
    HTML:
    1.  
    2.   <script type="text/javascript">
    3.     function resetModel() {
    4.       if ($("#operator").val()==0) {$("#model").find("option[index='0']").attr("selected","selected");}
    5.     }
    6.   </script>
    7.  
    8.  
    добавил в событие функцию resetModel():
    HTML:
    1.  
    2.  <select name="operator" id="operator" onchange="if (this.selectedIndex) this.form.submit(); resetModel()">
    3.         <option disabled selected>Выберите оператора...</option>
    4.        
    5.         <?php        
    6.          $null = 0;
    7.          $select_operator_name = "Все операторы...";
    8.    
    9.          $select_operator .= "<option value='".$null."'";
    10.          if($null == $_REQUEST['operator']) $select_operator .= " selected ";
    11.          else $select_operator .= "";
    12.          $select_operator .= ">".$select_operator_name."</option>";
    13.  
    14.           if ($res = mysql_query("SELECT * FROM `operators`
    15.                                   ORDER BY `surname`
    16.                                  "))
    17.           {
    18.           while ($row = mysql_fetch_assoc($res))
    19.           {
    20.               $select_operator .= "<option value='".$row['id']."'";
    21.              if($row['id'] ==  $_REQUEST['operator']) $select_operator .= " selected ";
    22.              else $select_operator .= "";
    23.              $select_operator .= ">".$row['surname']." ".$row['name']."</option>";              
    24.                            
    25.               //echo '<option value="'.$row['id'].'">'.$row['surname'].' '.$row['name'].'</option>';
    26.           }
    27.             echo $select_operator;
    28.           }
    29.         ?>      
    30.       </select>
    31.  
    32.  
    но не работает. Не совсем понял как Id элемента передавать.
     
  5. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    разобрался. в Событии onChange поменял местами последовательность выполнения операций.
    HTML:
    1.  
    2. <select name="operator" id="operator" onchange="resetModel(); if (this.selectedIndex) this.form.submit()">