За последние 24 часа нас посетили 20067 программистов и 1001 робот. Сейчас ищут 304 программиста ...

Ajax - редирект после получения данных.

Тема в разделе "JavaScript и AJAX", создана пользователем Riddick777, 24 фев 2020.

  1. Riddick777

    Riddick777 Новичок

    С нами с:
    24 фев 2020
    Сообщения:
    2
    Симпатии:
    0
    Всем привет, не пинаем - в жаба скрипте ну совсем не очень, второй день не могу доделать, нужна то одна строка. Гуглил читал, но нужно быстро а матчасть учить некогда. Короче кто поможет, тому спасибо, здоровья, счастья успехов в личной жизни)))
    Есть Ajax запрос:
    Код (Javascript):
    1. $(function() {
    2.     (function worker() {
    3.       $.ajax({
    4.         url: 'ajax.php',
    5.         method: 'POST',
    6.         data: {'test':'yes'},
    7.         success: function(data) {
    8.           $('#formlineresult').html(data);
    9.         },
    10.         complete: function() {
    11.           setTimeout(worker, 1000);
    12.         }
    13.       });
    14.     })();
    15. });
    В файле ajax.php идет запрос к базе на предмет наличия подтверждений,
    Грубо говоря $confirms = 0;
    Мне нужно -> если $confirms >= 3, то ajax.php дает команду на редирект. Основной файл в скрипте указанном выше воспринимает эту команду и редиректит куда нужно.
    Грубо говоря меняя скрипт выше, нужно добавить что-то типа:
    Код (Javascript):
    1. if (data.redirect) {
    2.       window.location.href = data.redirect;
    3. } else  {
    4.       $('#formlineresult').html(data);
    5. }
    Как это сделать правильно....
     
  2. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Riddick777, непонятно что сервер отвечает
    это "звучит как и к умным и к красивым"
    грубо говоря ответ сервера должен быть либо
    PHP:
    1. $responce = ['STATUS'=>'html', 'CONTENT'=>'html code'];
    либо
    PHP:
    1. $responce = ['STATUS'=>'redirect', 'CONTENT'=>'url redirect'];
    естественно json
     
  3. Riddick777

    Riddick777 Новичок

    С нами с:
    24 фев 2020
    Сообщения:
    2
    Симпатии:
    0
    Я же говорю, я в жабаскрипте практически ноль, что нужно конкретно сделать?
    Попробовал вот так:
    Код (Javascript):
    1. $(function() {
    2.     (function worker() {
    3.       $.ajax({
    4.         url: 'ajax.php',
    5.         method: 'POST',
    6.     dataType: "json"
    7.         data: {'test':'yes'},
    8.         success: function(data) {
    9.           $('#formlineresult').html(data);
    10.         },
    11.         complete: function() {
    12.           setTimeout(worker, 1000);
    13.         }
    14.       });
    15.     })();
    16. });
    В ajax.php
    PHP:
    1. $responce = ['STATUS'=>'html', 'CONTENT'=>'html code'];
    2. echo $responce;
    Нифига результата)))) Я понимаю что туплю, но где не понимаю)))
     
  4. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    PHP:
    1. <?php
    2. // Включаем отображение ошибок в браузере
    3. ini_set('display_errors', 'On');
    4.  
    5. if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])
    6.     && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    7.    
    8.     if (isset($_POST['progress'])) {
    9.         $progress = (int)$_POST['progress'] + 10;
    10.         if ($progress <= 100) {
    11.             echo json_encode(['STATUS'=>'html', 'CONTENT'=>$progress]);
    12.         } else {
    13.             echo json_encode(['STATUS'=>'redirect', 'CONTENT'=>'ajax.php']);
    14.         }
    15.     exit;
    16.     }
    17. }
    18. ?>
    19. <!DOCTYPE html>
    20. <html lang="en">
    21. <head>
    22.   <title>Bootstrap Example</title>
    23.   <meta charset="utf-8">
    24.   <meta name="viewport" content="width=device-width, initial-scale=1">
    25.   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    26.   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    27.   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
    28.   <script>
    29. $(function() {
    30.     var progress = 0;
    31.    
    32.     (function worker() {
    33.       $.ajax({
    34.         url: 'ajax.php',
    35.         method: 'POST',
    36.         data: {'progress': progress},
    37.         dataType: 'json',
    38.         success: function(data) {
    39.           if (data.STATUS == 'redirect') {
    40.               window.location.href = data.CONTENT;
    41.           } else {
    42.               progress = data.CONTENT;
    43.               $('.progress-bar').attr('aria-valuenow',progress);
    44.               $('.progress-bar').css('width',progress + '%');
    45.               $('.progress-bar').text(progress + '%');
    46.           }
    47.         },
    48.         complete: function() {
    49.           setTimeout(worker, 10);
    50.         }
    51.       });
    52.     })();
    53. });
    54. </script>
    55. </head>
    56. <body>
    57.  
    58. <div class="container">
    59.   <h2>Animated Progress Bar</h2>
    60.   <div class="progress">
    61.     <div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="" aria-valuemin="0" aria-valuemax="100" style="width:0%">
    62.     </div>
    63.   </div>
    64. </div>