ФорумПрограммированиеJavaScript → Научите Аяксу!

Научите Аяксу!

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 20:18

    Опять я.
    Все таки решил изучить этот метод.
    Выбрал пока jquery.

    Читаю статьи, но нифига не понимаю! =(
    Вот список вопросов:

    1. Аякс метод получения доп донных без перезагрузки страницы.
    Тоесть я могу вызвать функцию php из javascript-а?

    2. Если ответ на первый вопрос утвердительный,то можно на примере?

    пример который нашел тут
    http://anton.shevchuk.name/javascript/jquery-for-beginners/

    $(document).ready(function(){
       $(".btn-slide").click(function(){
           $("#panel").slideToggle("slow");
       });
    });

    Но он запускает функцию из класса.
    А как мне допустим данные из БД получить?

    так, понял что нужен не просто jQuery, а jQuery PHP =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 21:19, спустя 1 час 1 минуту 28 секунд

    1. да. не так все просто.

    2. примеру тут http://docs.jquery.com/Ajax

    3. со страницы с помощью аяксовых вызовов вы можете подкачать данные с сервера. транспортом для передачи данных может служить несколько методов: xml,json data, html(это пиздец )) ).

    для генерации xml на стороне рекоменую simplexml_load_string или простые форичи.
    для генерации json - http://ru2.php.net/json_encode
    для генерации html - известные вам методы :)

    еще вопросы? :)
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 21:45, спустя 25 минут 42 секунды

    Ну мля, аш голова заболела =(
    Вот пример
    <html>
    <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>

    <script>
    $(document).ready(function(){
    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
    function(data){
    $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
    });
    });
    });
    </script>
    <style>img{ height: 100px; float: left; }</style>
    </head>
    <body>
    <div id="images"></div>
    </body>
    </html>



    Давайте его разберем.

    1 $(document).ready(function(){
    2 $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
    3 function(data){
    4 $.each(data.items,
    5 function(i,item){
    6 $("<img/>").attr("src", item.media.m).appendTo("#images");
    7 if ( i == 3 ) return false;


    1 ну ладно, тут понятно
    2 наверно файл который возвращает значение
    3 Это что за функция?нафига?
    4 5 6 7 тот же вопрос.


  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 21:48, спустя 2 минуты 37 секунд

    3 - функция которая пашет при получении данных
    а след. пункты - разбор результата
    все умрут, а я изумруд
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 21:49, спустя 1 минуту 9 секунд

    А куда данные записались то? в data?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 21:52, спустя 3 минуты 33 секунды


    А куда данные записались то? в data?
    Да
    все умрут, а я изумруд
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 21:53, спустя 32 секунды

    $(document).ready(function(){
    при полной загрузке документа

    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?"
    делаем запрос сюда http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?

    function(data){
    после получения данных создаем лямбда функцию, которая параметром принимает эти данные и обрабатывает их

    $.each(data.items, function(i,item){
    для каждого элемента items в принятом массиве данных от фликра применяем

    $("<img/>").attr("src", item.media.m).appendTo("#images");
    создаем на лету img(картинка) и присваиваем ее src к перебираемому элементу массива, полю media, значению m. созданную картинку добавляем в контейнер с id=images на нашей странице.

    пинаем хуй :)
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 22:04, спустя 11 минут 31 секунду

    Хорошо, вот я написал
    	    
    $.getJSON("ajax.php", function(json){
    alert("JSON Data: " + json);
    });

    Это надо запускать при нажати на элемент с именем name="claim"
    Я на этот элемент onclick="zaiavka()"; вешаю.


    function zaiavka(id)
    {
       $.getJSON("ajax.php", function(json){
    alert("JSON Data: " + json);
    });
    }

    Но ничего не происходит.
    Может я библиотеку не подключил?
    скачивал это
    http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.js&downloadBtn=
    маленький какой то, помоему не то что нужно
    подключал
    <script type="text/javascript" src="script/jquery.js"></script>
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 22:07, спустя 3 минуты

    у тебя есть firebug ? библиотеки этой хватит - 100%
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 22:12, спустя 4 минуты 43 секунды

    Да, есть, а толку(
    Как им проверить?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 22:14, спустя 1 минуту 55 секунд

    посмотри в console есть ли ajax запросы? файрбаг их ловит все :)

    там же он ошибки жс пишет. есть чо нить?
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 22:22, спустя 8 минут 3 секунды

    О, она выключена была =)

    Да, пишет что все норм 9 милисекунд потребовалось,
    А результат не выдал=(
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 22:26, спустя 3 минуты 38 секунд

    Мля, я дебил, ща подождите
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 ноября 2008 г. 22:31, спустя 5 минут 23 секунды

    Все!!Получилось!! Спасибо phpdude, md5, за обучение :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 ноября 2008 г. 22:43, спустя 11 минут 37 секунд

    велкам)
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!