Перейти автоматически на другую страницу, используя HTML

0

У меня есть две страницы, html, которые отправляют значение на страницу php, а затем php-страница возвращает результат в div на странице html.

В первом тесте он имеет только сообщение с ошибкой, а в предложении else он должен перенаправляться на другую страницу html, поэтому скрипт на php-странице будет отображаться в html. Я использовал javascript, но он не делает этого для меня.

Это все коды, которые я использовал:

if (mysqli_num_rows($result)==0)
{
    echo" Code erroné ";
}
else
{
    header('location:infosInt.html');
    //echo "<script> window.open('infosInt.html')</script>";
    //echo "<script> window.location = 'infosInt.html'</script>";
}

РЕДАКТИРОВАТЬ

Моя страница html:

<!DOCTYPE html>
<head>
  <script type="text/javascript" src="jquery.js"></script>
     <script src="jquery-ui.js" charset="ISO-8859-1"></script>
          <script src="jquery-1.9.1.js" charset="ISO-8859-1"></script>
<script  type="text/javascript" src="jquery.crypt.js" ></script>
   <LINK rel="stylesheet" type="text/css" href="android.css">

  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Login Form</title>
  <script>

function connexion(evt)
{
var x=document.getElementById('code');
var cde = x.value;
 var str = $().crypt({
  method: "md5",
  source: cde
  });
if (cde=="")
  {
 // document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
  var url ="http://localhost/filename/page.php";
  var params="q="+ str;
        xmlhttp.open("POST",url,true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
       xmlhttp.setRequestHeader("Content-length", params.length);
       xmlhttp.setRequestHeader("Connection", "close");

        xmlhttp.send(params);     

};
  </script>
</head>
<body>
  <div class="login">
      <p></p>
    <form method="" action="" id= "codeform"  onsubmit="connexion();return false;">
     <p> &nbsp &nbsp &nbsp &nbsp</p>

      <input type="password"   id="code" ></p>

      <p class="submit"><input type="submit"  id="connect" value="Connexion" ></p>

    </form>
  <div id ="txtHint"></div>
  </div>
</body>
</html>

и это page.php:

<?php

$host     = "localhost";
$port     = port;
$socket   = "";
$user     = "root";
$password = "";
$dbname   = "base";


$con = new mysqli($host, $user, $password, $dbname, $port, $socket);
if (!$con)
  {
  die('Could not connect: ' . mysqli_error($con));
  }

$q =$con->real_escape_string($_POST['q']);

mysqli_select_db($con,"ajax_demo");

$sql="query where column ='".$q."'"; // ex
$result = mysqli_query($con,$sql);

if (mysqli_num_rows($result)==0)
  {
 echo" Code erron&eacute; ";
  }
else
{
echo"<head><meta http-equiv='refresh' content='5; URL=infosInt.html'></head>";}

mysqli_close($con);
?>
Теги:
url-redirection

1 ответ

0
Лучший ответ

Дело в том, что вы вызываете свой php-скрипт с помощью ajax, поэтому вы не можете использовать header('Location:...') или перенаправление html. Вы должны вернуть флаг в свой php-скрипт и протестировать его, когда получите ответ с помощью javascript:

PHP (в конце page.php):

if (mysqli_num_rows($result)==0)
{
    echo "Code erron&eacute;";
}
else
{
    echo "redirect"; // the flag
}

Javascript (на мероприятии xmlhttp.onreadystatechange):

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
    if (xmlhttp.responseText == 'redirect') { // if flag is sent we redirect
        document.location.href = 'infosInt.html';
    } else {
        document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
    }
}
  • 0
    Ваш код логичен, я поставил его, но когда я нажимаю кнопку, он как бы исчезает на несколько секунд и появляется на той же странице, ничего не изменив ..
  • 0
    Но URL не указывает на infosInt.html после перенаправления?
Показать ещё 19 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню