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

HTML+CSS+JavaScript

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

 

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

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

тема: динамические select + ajax
 
 автор: LimP   (02.11.2009 в 19:00)   письмо автору
72 Кб
 
 

Здравствуйте. Есть структура подобного вида:


[Раздел]
    - [Подраздел]
    - [Подраздел] 
       - [Подраздел]
       - [Подраздел]
          - [Товар] 
          - [Товар] 
          - ... 
       - ... 
    - ... 


Задача: сделать динамический список из <select> где при выборе каждого появляется следующий под ним со списком его подразделов (как при выборе страны -> области -> города итп.) но кол-во вложений должно быть динамическим. возле каждого <select> - кнопка или ссылка перехода на страницу данной структуры. Тем самым пытаюсь реализовать меню из селектов. Пытаюсь делать, используя аякс, ничего не выходит. Последняя попытка, использовал JsHttpRequest.

HTML

<form>
        <script src="scripts/JsHttpRequest.js"></script>

        <script>
            function doload(value, where){
                var req=new JsHttpRequest();
                req.onreadystatechange=function(){
                    if(req.readyState==4) document.getElementById(where).innerHTML=req.responseText;}
                req.open(null,"select.php",true);
                req.send({category:value});}
        </script>
        <select id="cat" class="cat-go-form" onchange="doload(this.value, 'result');">
            <option value="no">Выберите Вид Продукции</option>
            <?PHP
            $rs 
mysql_query("SELECT * FROM ".$mPrefix."_content where parentuid=0 and type='folder'");
            while (
$row mysql_fetch_array($rs)) {
                echo 
"<option value=\"{$row['uid']}\">{$row['title']}</option>";
            }
            
?>
        </select>
        <input type="submit" class="submit go-on">
    </form>
    <span id="result"></span>


PHP

$JsHttpRequest=new JsHttpRequest("windows-1251");

$cat = $_REQUEST["category"];

if($cat!="no") {
    
    $html = "<form>
            <select id=\"subcat\" class=\"cat-go-form\" onchange=\"doload(this.value, 'resul');\">
            <option value=\"no\">Выберите Элемент</option>";

    $rs = mysql_query("SELECT * FROM ".$mPrefix."_content where parentuid=$cat and type!='file'");
    while ($row = mysql_fetch_array($rs)) {
        $html .= "<option value=\"{$row['uid']}\">{$row['title']}</option>";
    }

    $html .= "  </select>
            <input type=\"submit\" class=\"submit go-on\">
            <br><br>
            <div id=\"resul\"></div>
        </form>";
}
//В общем-то, все. Теперь просто выводим переменную $html, которую успешно "поймает" наша функция doload().

echo $html;


Результатом моего скрипта новый селект конечно появляется, однако один, а необходимо делать до конца дерева-структуры. Плюс как то потом пробежаться собрать значения, дабы осуществить редирект. Заранее благодарен, ибо бьюсь уже второй день, очень рассчитываю на Вашу помощь.

  Ответить  
Rambler's Top100
вверх

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