Как перенаправить пользователя, если администратор нажал кнопку «Отправить» с другой страницы? - PullRequest
1 голос
/ 25 апреля 2020

Сначала извините за мой Engli sh.

Я создал панель администратора на странице admin. php, где у меня есть такая форма:

<form action="#" method="post">
<button type="submit" name="submit">
</form>

Подтверждение отправляет TRUE в базу данных и сохраняет ее там. Здесь идет часть, где я застрял.

На другой странице пользователя. php есть такая форма пользователя:

<form action="loading.php" method="post">
<input type="text" name="email">
<button type="submit" name="submit">
</form>

После того, как пользователь заполняет форму, его данные также отправляются в базу данных. После этого его перенаправляют на загрузку. php, где он ожидает на экране загрузки.

Пользователь должен знать, пока администратор не отправит TRUE в базу данных. Эта часть должна быть активной, поэтому пользователь ждет на экране загрузки, и когда администратор отправляет свою форму в базу данных, пользователь перенаправляется в реальном времени, поэтому ему не нужно обновлять sh страницу. Каков наилучший метод для выполнения таких действий? Могу ли я установить таймер с интервалом в AJAX, чтобы проверить его? И как мне это сделать?

Заранее спасибо.

1 Ответ

1 голос
/ 25 апреля 2020

PHP Сторона:

<?php // checkstatus.php
$user_id = $_GET['user_id'];
assert(is_numeric($user_id));

// Whatever query engine you use.
$query = 'select redirect where user_id = %user_id';
$results = runQuery($query, array('%user_id' => $user_id);
$redirect = $results->getvalue('redirect');

$response = array(
  'redirect' => $redirect,
);

header('Content-Type: application/json');
echo json_encode($response, JSON_PARTIAL_OUTPUT_ON_ERROR);
die();

Javascript сторона (я сделал это только с jquery, поэтому проверьте это для ванили https://www.sitepoint.com/guide-vanilla-ajax-without-jquery/):

function checkRedirect()
{
  $.Get('/checkstatus.php', {user_id: 10}, function(response)
  {
    if (response['redirect'])
    {
      window.location.href = '/newpage.php';
    }
  }, 'json').error(function()
  {
    // Something broke notify the user somehow. Please don't use alert.
    clearInterval(interval);
  });
}

// Must set this in global scope or interval will not be accessible inside error.add
interval = setInterval(checkredirect, 5000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...