• У меня пагинация сделана с помощью AJAX. Когда я хочу вернуться на прошлую страницу с помощью кнопки браузера "назад", это не работает. Как исправить?

    @Zevs91
    Все просто, когда пользователь заходит в раздел постов с пагинацией Вам надо включить супер глобальный массив
    $_SESSION['ajax_pagination'] = true; 
    $_SESSION['ajax_pagination_page'] = 5//текущая страница

    Когда пользователь нажмет на кнопку назад в браузере его перекидывает на страницу до того как он попал на страницу с постами и пагинацией
    Вам надо будет в каждой php файле включить специальны обработчик для проверки активности $_SESSION['ajax_pagination'], если оно активна перекидывать его на страницу с постами и пагинациями и минус одну страницу из пагинаций
    Ответ написан
  • Как правильно реализовать вывод разного количество постов на разных размерах экрана?

    @Zevs91
    Есть масса вариантов
    Я могу подсказать один вариант, без ajax
    Используйте суперглобальный массив $_SERVER а именно $_SERVER['HTTP_USER_AGENT']
    echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
    $browser = get_browser(null, true);
    print_r($browser);

    ответ будет у всех разный все зависит от ос и браузера
    а как пример
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3
    
    Array
    (
        [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
        [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
        [parent] => Firefox 0.9
        [platform] => WinXP
        [browser] => Firefox
        [version] => 0.9
        [majorver] => 0
        [minorver] => 9
        [cssversion] => 2
        [frames] => 1
        [iframes] => 1
        [tables] => 1
        [cookies] => 1
        [backgroundsounds] =>
        [vbscript] =>
        [javascript] => 1
        [javaapplets] => 1
        [activexcontrols] =>
        [cdf] =>
        [aol] =>
        [beta] => 1
        [win16] =>
        [crawler] =>
        [stripper] =>
        [wap] =>
        [netclr] =>
    )

    иными словами можно получит название браузера и ос клиента до того как страница будет загружена
    Вот Вам функция взятая из сети:
    <?php
    /*
    Author: Daniel Kassner
    Website: http://www.danielkassner.com
    */
    function getOS($userAgent) {
      // Создадим список операционных систем в виде элементов массива
        $oses = array (
            'iPhone' => '(iPhone)',
            'Windows 3.11' => 'Win16',
            'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', // Используем регулярное выражение
            'Windows 98' => '(Windows 98)|(Win98)',
            'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
            'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
            'Windows 2003' => '(Windows NT 5.2)',
            'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
            'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
            'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
            'Windows ME' => 'Windows ME',
            'Open BSD'=>'OpenBSD',
            'Sun OS'=>'SunOS',
            'Linux'=>'(Linux)|(X11)',
            'Safari' => '(Safari)',
            'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
            'QNX'=>'QNX',
            'BeOS'=>'BeOS',
            'OS/2'=>'OS/2',
            'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)'
        );
        foreach($oses as $os=>$pattern){
            if(eregi($pattern, $userAgent)) { // Пройдемся по массиву $oses для поиска соответствующей операционной системы.
                return $os;
            }
        }
        return 'Unknown'; // Хрен его знает, чего у него на десктопе стоит.
    }
    ?>
    
    echo getOS($_SERVER['HTTP_USER_AGENT']);


    Данный вариант лучше всего подходит под Вашу задачу
    Ответ написан
  • Как изменить PHP переменную с помощью Ajax jquery?

    @Zevs91
    $('.change_false_or_true').click(function(){
         function change_php() {
                    $.ajax(
                        {
                            type: "GET",
                            url:"myfunc_php",
                            success: function (data) {
                                console.log(data)
                            },
                            error: function (xhr, str) {
                                console.log("error change_php");
                            }
                        })
          }
    	change_php();
      })

    api_for_mobile.php
    Добавить
    if(!$_SESSION['sale']){$_SESSION['sale']=false}; //данную глобальную переменную необходимо прописать в php файле отвечаюшие за вывод цены для акции 
    $SALE = false; //заменить на $SALE = $_SESSION['sale'];


    myfync.php

    <?php
      if(S_SESSION['sale']==false){$_SESSION['sale']=true;}
      else
      {$_SESSION['sale']=false;};
    Ответ написан