Важная информация

User Tag List

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

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

  1. #1
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

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

    Есть раздел mp3 ремиксов начал делать страничку для закачки музонов. Очень хочется сделать загрузку новых музонов за 1 обновление странички.

    Для этого нужно, что бы когда человек выбирает из списка автора оригинального AY трека, javascript автоматом запрашивал из базы список музонов этого автора и подставлял их в форму.

    Нужен именно ajax код для этого (с php тредностей нет).

    Кто-нибудь сталкивался с решением подобной задачки?

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

  3. #2
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,242
    Благодарностей: 876
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Даже не немного... Яваскрипт запрашивал из БАЗЫ МУСКУЛЯ? oO newart, ты прекращай курить так много травы... Аякс может только данные из выполненного php-скрипта получить. Делается примерно так:
    Код:
    	var query = "?mp3=" + mp3 + "&bitrate=" + btr;
    	ajaxRequest.open("GET", "скриптдлябазы.php" + query, true);
    	ajaxRequest.send(null);
    Далее делаешь чего хочешь с этим реквестом.

    В принципе вот готовый уже вариант: http://andreas.id.au/jsrs/
    Бери да перетаскивай себе с минимальными модификациями.
    Последний раз редактировалось Shadow Maker; 12.01.2009 в 22:58.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Мордовия - Республика звука

  4. #3
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    Яваскрипт запрашивал из БАЗЫ МУСКУЛЯ? oO newart, ты прекращай курить так много травы... Аякс может только данные из выполненного php-скрипта получить
    Обобщенно выразился. Зачем к словам цеплятся?

    Цитата Сообщение от Shadow Maker Посмотреть сообщение
    var query = "?mp3=" + mp3 + "&bitrate=" + btr;
    ajaxRequest.open("GET", "скриптдлябазы.php" + query, true);
    ajaxRequest.send(null);
    Непонятно как передать значение из формы (ID автора оригинала) яваскрипту и далее в php. И самое главное не понятно как данные из "скриптдлябазы.php" впихнуть в форму (выпадающий список).

  5. #4
    Master Аватар для nyuk
    Регистрация
    10.02.2005
    Адрес
    Вологда
    Сообщений
    893
    Благодарностей: 428
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Покури jQuery, очень рекомендую. Там все просто.
    Код HTML:
    <script src="/scripts/jquery/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">/*<![CDATA[*/
    $(document).ready(function(){
        
    	$("#submit_form").click(function(){
    		$.ajax({
    			'success': function(data) {
    					$("#result").html("data");
    			},
    			'url': 'скриптдлябазы.php',
    			'data': $("#form").serialize(),
    			'type': 'POST', 
    			'cache':false
    		});
    	});
            
    });
    /*]]>*/</script>                
    
    <form id="authors_form">
    ... здесь список  данных, которые отправляются в скриптдлябазы.php 
    через POST-запрос ...
    </form>
    
    <div id="submit_form">Отправить данные</div>
    
    <div id="result">Вместо этого текста будет подставлено всё, 
    что нарисует скриптдлябазы.php</div>
    Я не проверял, мог и накосячить. Но принцип такой.
    Можно даже проще, через $.post() например.
    Спектрумист, более менее умеющий форматировать дискеты на реале.

  6. #5
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Благодарностей: 372
    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.

  7. #6
    --- Аватар для Shadow Maker
    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,242
    Благодарностей: 876
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    /*Поудалял, нафига еще третий способ*/

    Короче скачай пример вон я тебе ссылку дал, там уже готовое всё, тебе тока пхп на базу переделать.

    Keeper, динозавр у тебя мощный newart'у проще будет в php формы сразу нагенерить, он же яваскрипт не понимает.
    Последний раз редактировалось Shadow Maker; 13.01.2009 в 00:12.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Мордовия - Республика звука

  8. #7
    Moderator Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Благодарностей: 117
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я бы тоже смотрел в сторону jQuery. подозреваю что есть уже готовые решения которые возможно надо подкрутить чуть-чуть...

    например:
    http://remysharp.com/2007/01/20/auto...g-jquery-ajax/

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

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

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

Похожие темы

  1. Немного демок
    от Vitamin в разделе Демо
    Ответов: 27
    Последнее: 10.08.2012, 12:05
  2. Ответов: 8
    Последнее: 07.01.2009, 20:49
  3. Ответов: 3
    Последнее: 30.08.2007, 10:41
  4. Немного релизов
    от ^m00h^ в разделе Игры
    Ответов: 0
    Последнее: 11.06.2007, 03:43
  5. Ответов: 3
    Последнее: 14.05.2007, 07:40

Ваши права

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