User Tag List

Показано с 1 по 7 из 7

Тема: Тут ajax кто-нибудь хоть немного знает?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    Непонятно как передать значение из формы (ID автора оригинала) яваскрипту и далее в php. И самое главное не понятно как данные из "скриптдлябазы.php" впихнуть в форму (выпадающий список).
    Такс, как я понимаю, странички у тебя генерирует РНР, значит получаеш список авторов оригиналов, т.е. их ID и подставляеш их в select:

    PHP код:
    <select id="orig_authors" onchange="updateRemixesList();"><?php 
    foreach ( $authors as $author ) { ?>
    <option value="<?php echo $author['id']; ?>"><?php echo $author['name']; ?></option>
    <?php ?></select>
    Далее когда пользователь выберет автора оригинала обработчик onChange вызовет JavaScript функцию updateRemixesList();

    Код:
    function updateRemixesList() {
        var orig_authors_select = document.getElemntById('orig_authors'); //получаем объект selecta
        if ( orig_authors_select ) {
            orig_author_id = orig_authors_select.options[orig_authors_select.selected_index].value;//Получаем  текущее выбраное значение
    //Далее делаем запрос аяксом, т.е. отправляем orig_author_id
        } else alert('It is a bad day today...');
    }
    Теперь server side получил Id автора оригинала и мы можем получить список ремиксов. Получаем список ремиксов (или авторов ремиксов, уже забыл пока писал ), формируем XML или текст для ответа (ответ приходит обратно в JavaScript)

    Будем считать что ответ от аякса мы удачно получили и у нас есть некий массив с авторами ремиксов и этот список нужно вывести во второй выпадающий список, делаем следующее:

    в том месте где должен быть выпадающий список ставим:

    <select id="remix_authors"></select>

    Далее допустим что авторов ремиксов добавляет функция addRemixAuthors()

    Код:
    function addRemixAuthors() {
        var remix_authors_select = document.getElementById('remix_authors');
        if (remix_authors_select) {
           //Удаляем старый список
           if ( remix_authors_select.options.length > 0 ) {
              for (i=0;i<remix_authors_select.options.length;i++) {
                  remix_authors_select.removeChild(remix_authors_select.options[i]);
              }
           }
           //Добавляем новые элементы
           for (i=0;i<authors.length;i++) {
                var el = elem('option', {'value', authors[i][1]/*id*/}, null, authors[i][0]/*name*/);
                remix_authors_select.appendChild( el );
           }
        }
    }
    Ну и последняя функция:

    Код:
    function elem(name, attrs, style, text, evthandlers) {
        var e = document.createElement(name);
        if (attrs) {
            for (key in attrs) {
                if (key == 'class') {
                    e.className = attrs[key];
                } else if (key == 'id') {
                    e.id = attrs[key];
                } else {
                    e.setAttribute(key, attrs[key]);
                }
            }
        }
        if (style) {
            for (key in style) {
                e.style[key] = style[key];
            }
        }
        if (text) {
            e.appendChild(document.createTextNode(text));
        }
        if (evthandlers) {
            for (key in evthandlers) {
                //alert(evthandlers[key]);
                //alert(key);
                if(window.addEventListener) { // Mozilla, Netscape, Firefox
                    e.addEventListener(key, evthandlers[key], false);
                   } else { // IE
                    e.attachEvent('on'+key, evthandlers[key]);
                   }
             }
        }
        return e;
    }
    Последний раз редактировалось Keeper; 13.01.2009 в 00:03.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Немного демок
    от Vitamin в разделе Демо
    Ответов: 27
    Последнее: 10.08.2012, 14:05
  2. На опознание платы,хоть убейте не знаю что это.
    от Mad Killer/PG в разделе Несортированное железо
    Ответов: 8
    Последнее: 07.01.2009, 20:49
  3. Ответов: 3
    Последнее: 30.08.2007, 12:41
  4. Немного релизов
    от ^m00h^ в разделе Игры
    Ответов: 0
    Последнее: 11.06.2007, 05:43
  5. Хоть кто-нибудь, замерьте внутренний габарит корпуса!!!
    от Sonic в разделе Несортированное железо
    Ответов: 3
    Последнее: 14.05.2007, 09:40

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •