Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > select динамический


Автор: Slide 26.2.2008, 22:50
Добрый вечер. Вопрос такой: есть 5 селектов, которые получают инфу из БД, только нада сделать чтобы сразу был активен первый селект, после выбора его активируется следующий и вытаскивается из БД инфа для второго селекта связанная с первым.(пример: первый селект- страна, второй город). Так вот, реализовать удалось с помощью java, но есть один бок, перед тем как активировать следующий селект он обновляет всю страницу, что занимает время и больше трафика жрет. Слышал что можно реализовать это все как-то без перезагрузки страницы? Не могли бы поделиться таким кодом?

Вот то что есть у нас:
Код

    <table class="main" width="798" height="250" border="0"
    <tr>
     <td width="780" height="250" align="center">

<form method="post">

<table width="400" height="150" border="0">

<tr>

    <td class="find" width="100" height="20">  Город: </td>
        <td class="find" width="300">
        <select style="width: 300px;" name="city" onChange='this.form.submit();'>
            <option value=''>Выберите город</option>
            <?
                $a=mysql_query('SELECT * FROM citys order by city asc');
                while($data=mysql_fetch_object($a))
                echo "<option".check_var('city',$data->id)." value='".$data->id."'>".$data->city."</option>";
            ?>

        </select>
    </td>

</tr>

<tr>

        <td class="find" width="100" height="20"> Район: </td>
    <td class="find" width="300">
        <select style="width: 300px;" name="district" onChange='this.form.submit();' <?=check_post(Array('city'))?"":"disabled"?>>
            <option value=''>Выберите район</option>
            <?
                $a=mysql_query('SELECT * FROM district_ where id_city="'.$_POST['city'].'" order by district_ asc ');
                while($data=mysql_fetch_object($a))
                echo "<option".check_var('district',$data->id)." value='".$data->id."'>".$data->district_."</option>";
            ?>
        </select>
    </td>

</tr>

<tr>

        <td class="find" width="100" height="20"> Раздел: </td>
    <td class="find" width="300">
          <select style="width: 300px;" name="spares" onChange='this.form.submit();' <?=check_post(Array('city','district'))?"":"disabled"?>>
              <option value=''>Выберите раздел</option>
            <?
                $a=mysql_query('SELECT * FROM spares order by spares asc '); //$_POST['district']
                while($data=mysql_fetch_object($a))
                echo "<option".check_var('spares',$data->id)." value='".$data->id."'>".$data->spares."</option>";
            ?>
        </select>
    </td>


</tr>

<tr>

        <td class="find" width="100" height="20"> Запчасть: </td>
     <td class="find" width="300">
          <select style="width: 300px;" name="spares_in" onChange='this.form.submit();' <?=check_post(Array('city','district','spares'))?"":"disabled"?>>
            <option value=''>Выберите запчасть</option>            
            <?
                $a=mysql_query('SELECT * FROM spares_in where id_spares="'.$_POST['spares'].'" order by spares_in asc ');
                while($data=mysql_fetch_object($a))
                echo "<option".check_var('spares_in',$data->id)." value='".$data->id."'>".$data->spares_in."</option>";

            ?>
        </select>
    </td>

</tr>

<tr>

        <td class="find" width="100" height="20"> Марка авто: </td>
    <td class="find" width="300">
         <select style="width: 300px;"  name="car" onChange='this.form.submit();' <?=check_post(Array('city','district','spares','spares_in'))?"":"disabled"?>>
            <option value=''>Выберите марку авто</option>
            <?                   
                $a=mysql_query('SELECT * FROM cars order by car asc' );
                while($data=mysql_fetch_object($a))
                echo "<option".check_var('car',$data->id)." value='".$data->id."'>".$data->car."</option>";
            ?>
        </select>
    </td>

</tr>

<tr>

    <td colspan="2" class="ch" width="100" height="20">
    Скидки:    <input type="checkbox" name="skidka" value="1">
    
    Доставка: <input type="checkbox" name="dostavka" value="1">
    </td>


</tr>

<tr>

    <td colspan="2" width="400">

        <input type="submit" target="_parent" style="width: 400px;" value="Поиск" name="btn1" onClick='this.form.action="select.php"' <?=check_post(Array('city','district','spares','spares_in','car'))?"":"disabled"?>

    </td>


</tr>

</table>

</form>
    
     </td>
    </tr>
    </table>


Автор: Itsys 26.2.2008, 23:51
Надо поменять принцип работы PHP скрипта + использовать AJAX

Автор: Slide 26.2.2008, 23:59
а не могли бы подсказать( само идеально в виде кода) как это сделать, а то я в этом не очень силен...пхп ток недавно начал изучать...

Автор: Itsys 27.2.2008, 00:12
Ищи в форуме, здесь много тем по AJAX, либо в google

Извини, но я в PHP не силен

Автор: Slide 27.2.2008, 00:19
лан, спс, буду дальше искать...

Автор: solenko 27.2.2008, 08:52
http://forum.vingrad.ru/forum/topic-151005/kw-select-ajax-option-%D0%B0%D0%B2%D1%82%D0%BE%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD.html

Автор: Slide 27.2.2008, 09:19
спс, сча буду изучатьsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)