За последние 24 часа нас посетили 18317 программистов и 1635 роботов. Сейчас ищут 1604 программиста ...

ajax и обновление страницы

Тема в разделе "JavaScript и AJAX", создана пользователем Nick0, 18 янв 2011.

  1. Nick0

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

    С нами с:
    26 июл 2008
    Сообщения:
    55
    Симпатии:
    0
    У меня на странице много функций (php) при работе странички выполении запроса аофксом берутся данные из какой либо функции.
    Но у меня возникла проблема что при обновлении стриницы выполняется первая функция ( та что по умолчанию ). А мне нужно чтобы последняя .
    подскажите может у кого есть какие идеи ?
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Чо?

    Сделать ее по умолчанию.
     
  3. Nick0

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

    С нами с:
    26 июл 2008
    Сообщения:
    55
    Симпатии:
    0
    дык она меняется в зависимости от последнего запроса
     
  4. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Кто? Функция по умолчанию?
     
  5. Nick0

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

    С нами с:
    26 июл 2008
    Сообщения:
    55
    Симпатии:
    0
    финальная функция
     
  6. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Ну и запоминайте ее (например, в сессию). И вызывайте ее.

    Кстати, подумайте, может проблема вызвана плохим проектированием?
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Расписывать не стал, вырвал целиком свою реализацию:

    [js]var documentAnchor = (location.hash) ? location.hash.substr(1, location.hash.length - 1) : "index";
    var handlers = new Object();

    $(document).ready(function() {
    $.fx.speeds._default = 1000;

    // Обработчик для ссылок
    $("a").click(function() {
    var href = $(this).attr("href");

    if(href.substr(0, 1) == "#") {
    documentAnchor = href.substr(1, href.length - 1);

    if(typeof(handlers[documentAnchor]) != "undefined") {
    $("#contents").fadeOut('slow', function() {
    $(this).html('Palun, oota ...<br /><br /><img src="/admin/img/loading.gif" />').fadeIn('slow', function() {
    handlers[documentAnchor]();
    });
    });
    }
    }
    });

    // Инициализируем страницу по якорю
    if(typeof(handlers[documentAnchor]) != "undefined") {
    handlers[documentAnchor]();
    } else handlers.index();
    });

    /**
    * Обработчик для главной страницы админки
    */
    handlers.index = function() {
    // Инициализируем диалог
    $("#notify").dialog({
    autoOpen : false,
    show : 'fade',
    hide : 'fade'
    });

    // Инициализируем кнопку
    $("#salvesta").button({
    icons : {
    primary : 'ui-icon-disk'
    }
    }).click(function() {
    $("#notify").dialog('open').delay(800).dialog('close');
    });
    };


    /**
    * Обработчик для страницы новостей
    */
    handlers.news = function() {
    $.post("/admin/index.php", "module=news&action=read", function(data) {
    $("#contents").fadeOut('slow', function() {
    $(this).html(data).fadeIn('slow');

    // Стилизуем кнопки
    $('.remove').button({
    icons : {
    primary : 'ui-icon-close'
    }
    });
    $('.edit').button({
    icons : {
    primary : 'ui-icon-pencil'
    }
    });
    });
    });
    }[/js]

    Разбирайся сам, там всё есть.
    Вариант рабочий.
     
  8. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Если подчистить и оставить только инициализацию:

    [js]var documentAnchor = (location.hash) ? location.hash.substr(1, location.hash.length - 1) : "index";
    var handlers = new Object();

    $(document).ready(function() {
    // Инициализируем страницу по якорю
    if(typeof(handlers[documentAnchor]) != "undefined") {
    handlers[documentAnchor]();
    } else handlers.index();
    });

    /**
    * Обработчик для главной страницы админки
    */
    handlers.index = function() {
    alert('Default page');
    };


    /**
    * Обработчик для страницы новостей
    */
    handlers.news = function() {
    alert('News page');
    }[/js]

    И соответственно якорь на странице:
    url/#news