За последние 24 часа нас посетили 17434 программиста и 1720 роботов. Сейчас ищут 1517 программистов ...

Примитив

Тема в разделе "JavaScript и AJAX", создана пользователем siiXth, 1 окт 2010.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ладно , задам вопрос "в лоб"
    мне абсолютно ясно - в любой задаче нужен план - алгоритм
    в общем задача : реализовать галерею
    как сделать на пхп - раз плюнуть , сделал за часик - просто я на пхп да и на определённом двигле только и "шедевралил" последние пару лет , вот захотелось "развиться" в плане js/ajax/jq
    к вопросу ближе - у меня есть альбомы , в них фото которые я могу извлекать только в массив линками
    так же у меня есть , так сказать - навигатор (+2 фото от просматриваемой и -2 фото от просматриваемой , всего 5 - просматриваемая по центру)
    и ещё у меня есть комментарии к каждой фотке - есть вариант извлекать все комментарии к альбому за один раз
    в чём задача - при клике на "вперёд" переключить на +1 фотку , просматриваемая фотография переключается на следующую (это уже есть в примере с json) , одновременно с кликом переключается навигатор(см выше) на +1 (его так же можно извлекать из массива созданного раньше) и одновременно с кликом перезагружать комментарии
    в чём проблема ... как я писал раньше - да , я могу с каждым кликом делать запросы заново - делать запрос в бд , извлекать массив , строить навигатор , делать запрос на комментарии , строить комментарии.
    и того на каждый клик по 2 запроса в бд ... да это мало , но я знаю что профессиональный коддер сделал бы это как я себе представляю - фотки и комментарии в массив при загрузке первого фото , а дальше простое извлекание из массива фоток и комментов и ненужно делать бессмысленные запросы в бд на онклике.
    и проблема в том что я ещё не научился мыслить валидно по js'ки =) непойму алгоритма решения подобных задач. я просто прошу подсказать максимум который можете изложить - например массив фоток обрабатывать json вместе с отформарованным массивом комментариев при просмотре первой фотографии или может просто проще делать тупые запросы за фотки и комменты... я просто хочу понять в каком правильном направлении мне мыслить =) сделать , то я могу и через ЖО , но я хочу сделать это валидно. спасибо за советы )
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    siiXth
    забей на фобию "запросов к бд".

    все один лучше получится в любом случае, чем на файликах и ли как-то еще по-самописному.

    нет ничего страшного в десятке запросов к бд.
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    я уже горюююю
    что тут мать его не так ?
    а точнее - с 3ей строки
    [js]$(document).ready(function () {
    $('img#photo').imgAreaSelect({ handles: true });
    $("#mark").click(function() {

    $.ajax({
    type: "POST",
    url: "mark.php",
    data: "x1="+val(selection.x1),

    beforeSend: function(){
    },
    success: function(answ){

    $("#proccess").empty()
    .append(answ);
    }
    });
    });
    });[/js]
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Firebug стоит?
     
  5. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    поставил...где толк ? :D
     
  6. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    всё , видно мало доки почитал )
    нужно было онклик пихнуть в onSelectEnd
     
  7. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Как минимум видишь что уходит в АЯКС запрос и что приходит ;)
     
  8. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    так , туплю

    PHP:
    1. <?
    2. $result['marksname']=$marksname;
    3. $result['markstables']=$markstables;
    4. ?>
    это в пхп на выходе

    [js]$("#marked").append(result.marksname);
    $("#markstables").append(result.markstables);[/js]
    это в js на выводе

    тут где-то чтото не то ) чую что неправильно в пхп выход делаю =(
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    хз, я обычно с json работаю

    в php - echo json_encode($result)
    в яваскрипте -
    Код (Text):
    1.  
    2. $.ajax({
    3.  
    4.      dataType: 'json',
    5.  
    6.     cache : 'false' ,
    7.  
    8.     type : 'post',
    9.  
    10.     url : url,
    11.  
    12.     data : {
    13.                   id : id,
    14.                   count : count
    15.                },
    16.  
    17.     success : function(data){
    18.  
    19.                                        alert(data.marksname);
    20.                                        alert(data.order_sum);
    21.  
    22.                                         },
    23.  
    24.     error : _displayError
    25.  
    26.  });
    27. }
     
  10. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    сделал с json , дякую )
     
  11. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    приветпривет
    как при онклике вырубить онмаусовер другого линка ?
     
  12. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    [js]$(#mark_human).click(function () { //клик на id=mark_human

    $(.marksnames).attr('onmouseover', ''); // вырубаем onmouseover у класса marknames

    });[/js]

    я крут - сам написал и не работает :D хелпайте
     
  13. shurastik

    shurastik Активный пользователь

    С нами с:
    22 фев 2008
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Латвия
    селекторы в кавычки
     
  14. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ага , спс , ещё не привык )
     
  15. shurastik

    shurastik Активный пользователь

    С нами с:
    22 фев 2008
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Латвия
  16. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ага , вопрос
    jq создаёт в спане с id=trololo , картинку с классом=tralala к которой jq больше не может обратиться. в чём подвох ? = (
     
  17. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Может-может, никаких подвохов тут нет.
    Главное, чтобы во время вызова элемента он уже был создан тем же JQ.
     
  18. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    да , намудрил
    делал обращение , потом создание новой картинки =D
     
  19. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    и я так понимаю что через php получить location.hash(то самое что имеем в js) невозможно ? =)
     
  20. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    эх , проверьте пжлста в чём беда

    HTML:
    1.   <script src="http://code.jquery.com/jquery-latest.js"></script>
    2.  
    3.   <script>
    4. function begin(){
    5.   $(document).ready(function(){
    6.   var id=1;
    7.     $.ajax({
    8.  
    9.      dataType: 'json',
    10.  
    11.     cache : 'false' ,
    12.  
    13.     type : 'post',
    14.  
    15.     url : 'getone.php',
    16.  
    17.     data : {
    18.                   id : id,
    19.                },
    20. beforeSend: function(){
    21.     $("#33").empty().append('prepare');
    22.          },
    23.     success : function(data){
    24.  
    25.                                        $("#33").empty().append(12);
    26.  
    27.                                         },
    28.  
    29.     error : _displayError
    30.  
    31.  });
    32.  
    33.  
    34.   });
    35. }
    36.   </script>
    37.  
    38.  
    39.  
    40. </head>
    41. <a href="#" onclick="begin()">###</a>
    42.   <p id="33"></p>
    43. </body>
    44. </html>
    jq правильно подключён , работает , выводит. ошибка в отправке запроса где-то , beforeSend не отзывается.

    ну и на всякий случай getone.php :Р
    PHP:
    1.  
    2. <?php
    3. $dates['photo']=1212;
    4. echo json_encode($dates);
    5. ?>
     
  21. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Вижу точно, что ошибка в настройках табуляции редактора.
    ID должен начинатся с [A-Za-z]
    Текст в узел лучше добавлять через .text(), ибо .append чуточку для другого.
    Смотри дебагером, уходит ли запрос и что с сервера приходит
     
  22. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    ах лол , я критина кусок 8D в пхп файле перед <? был закомментеный хтмл ) незнал что он влияет
    интересно что beforesend не отзывался только...
     
  23. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    как-то пауза в цикле не работает , в чём может быть проблема ?

    [js]function begin(){
    i = 0

    while (i<10) {
    window.setTimeout(function(){
    i ++;
    $.ajax({

    dataType: 'json',

    type : 'post',

    url : "/go/getone.php",

    data : {
    nid : i,
    },
    beforeSend: function(){
    //$("#33").empty().append('prepare');
    },
    success : function(data){
    $("#33").append(data.photo+' '+data.id);

    }

    });
    },5000); //window.setTimeout(function(){
    } // while (i<10) {

    }[/js]
     
  24. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сет таймаут это тебе не пауза =)
    он вызовет через пять секунд твою функцию

    ты в цикле говоришь ему сделать это несколько раз. но все эти вызовы случатся через пять секунд. =) задумайся
     
  25. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    хм
    ну смотри , начался цикл , тело цикла вызовется через 5 секунд , обработается и цикл начнётся с начала и тело опять через 5 секунд - мне так и надо. или js выполняется непоследовательно как пхп например со sleep() ?
    ну дело в том что такой вариант вообще не работает )
    мне тупо нужно чтобы цикл выполнялся раз в 5 цекунд