内部窗口位置如果不起作用?

时间:2016-01-07 21:26:08

标签: php jquery ajax

我刚刚通过我的注册制作了一些东西我通过ajax发送了一些东西而不是用这些数据做什么然后如果(某些事情是真的)我试图使用window.location.replace();但它不起作用,我真的在这里疯狂。因为我把它放在里面,我用echo检查它,并且在窗口位置之前和之后的每一行回声都完成了所以代码确实进入了内部,如果,但是那个窗口位置绝对不是那里,它被忽略或者某事...问题不是用铬或任何东西,因为当我删除那个或者把那个窗口位置放在其他地方它正在工作,但就在那里,如果我需要工作,它没有做任何事情,我集会开车在这里疯了,请帮忙:(

这里是ajjax代码:

function registruj () {
    var pohlavie=[];

    $.each($("input:checked"),function(){
        pohlavie.push($(this).val());
    });
    if(pohlavie.length == 0)
        pohlavie[0] = "";
    var name =  $('#meno').val();

    var priez = $('#priezvisko').val();
    var log  = $('#login').val();
    var mail  = $('#mail').val();
    var cisloTel  = $('#cislo').val();
    var heslo = $('#heslo').val();
    var heslo1 = $('#heslo1').val();

    $.post( "registraciaudaje.php", {
            'meno': name,
            'priezvisko': priez,
            'login':log,
            'mail':mail,
            'cislo':cisloTel,
            'heslo':heslo,
            'heslo1':heslo1,
            'pohlavie':pohlavie

        }, function (data) {
            $('#result').html(data);

        }


    );
    $('#nove').load(document.URL + ' #nove');


}

这里我使用了来自ajax的POST

<?php
session_start();
if(isset($_POST["meno"]) ) {

$_SESSION['meno'] = $_POST["meno"];
$_SESSION['priezvisko'] = $_POST["priezvisko"];
    $_SESSION['login'] = $_POST["login"];
    $_SESSION['heslo'] = $_POST["heslo"];
    $_SESSION['heslo1'] = $_POST["heslo1"];

    $_SESSION['pohlavie'] = $_POST["pohlavie"][0];

    $_SESSION['mail'] = $_POST['mail'];
    $_SESSION['cislo'] = $_POST['cislo'];
//$id = $_SESSION['id'];

}
?>

和我的页面的HTML代码

<!doctype html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta charset="utf-8" />
    <title>blblblbl</title>
    <link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" />
    <script src="jquery-1.4.3.min.js"></script>
    <script type="text/javascript" src="./fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
    <script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script>
    <script>$(function(){$('.img').fancybox();});</script>
    <script type="text/javascript" src="prihlasenie.js"></script>
    <style type="text/css"> </style>
    <link rel="stylesheet" type="text/css" href="css/style1.css" />
</head>
<body class="body">
<div class="container">
    <div id="nove">
        <?php
        session_start();

        if(isset($_SESSION["meno"]) ) {

            require "pripojenie.php";
            $meno = $_SESSION["meno"];

            $priezvisko = $_SESSION["priezvisko"];
            $login = $_SESSION["login"];
            $heslo = $_SESSION["heslo"];
            $hesloZnovu = $_SESSION["heslo1"];
            if(isset($_SESSION["pohlavie"]))
                $pohlavie = $_SESSION["pohlavie"];

            $mail = $_SESSION['mail'];
            $cislo = $_SESSION['cislo'];

            unset($_SESSION['meno']);
            echo "kokot";
        }
        ?>

        <form  >
            <table style="margin-bottom:5px">
                <tr><td><label for="napdis">Vyplňte nasledujúci formulár:</label></td></tr>
                <?php  if(isset($pohlavie)) {
                    if($pohlavie == "zena") {
                        echo '<tr><td><input type="radio" name="pohlavie" value="zena" id="zena" checked>Žena</td></tr>';
                        echo '<br>';
                    }
                    else {
                        echo '<tr><td><input type="radio" name="pohlavie" value="zena" id="zena" >Žena</td></tr>';
                        echo '<br>';
                    }
                    if($pohlavie == "muz") {
                        echo '<tr><td><input type="radio" name="pohlavie" value="muz" id="muz" checked>Muž</td></tr>';
                        echo '<br>';
                    }
                    else {
                        echo '<tr><td><input type="radio" name="pohlavie" value="muz" id="muz" >Muž</td></tr>';
                        echo '<br>';
                    }

                } else {
                    echo '<tr><td><input type="radio" name="pohlavie" value="zena" id="zena" >Žena</td></tr>';
                    echo '<br>';
                    echo '<tr><td><input type="radio" name="pohlavie" value="muz" id="muz" >Muž</td></tr>';
                    echo '<br>';
                }
                ?>
                <tr><td><label for="meno">Meno :</label></td><td><input type = "text" id="meno" name="meno" value="<?php if(isset($meno)) echo $meno; ?>"></td></tr>
                <tr><td><label for="priezvisko">Priezvisko :</label></td><td><input type = "text" id="priezvisko" name="priezvisko" value="<?php if(isset($priezvisko)) echo $priezvisko; ?>"></td></tr>
                <tr><td><label for="login">Login :</label></td>
                    <td><input type = "text" id="login" name="login" value="<?php if(isset($login)) echo $login; ?>"></td></tr>

                <?php
                if(isset($heslo)) {
                    if (($heslo != "" && $hesloZnovu != "") && ($heslo == $hesloZnovu)) {
                        $chyba = 0;
                        if (strlen($heslo) < 8) {
                            $dlzka = 1;

                        }

                        if (!preg_match("#[0-9]+#", $heslo)) {

                            $cisla = 2;
                        }

                        if (!preg_match("#[a-zA-Z]+#", $heslo)) {
                            $znaky = 3;

                        }
                        if(isset($dlzka) && !isset($cisla) && !isset($znaky))
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo"  name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí mať aspoň 8 znakov!</label></td></tr>';
                        if(isset($cisla) && !isset($dlzka) && !isset($znaky))
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí obsahovať aspoň jedno číslo!</label></td></tr>';
                        if(isset($znaky)&& !isset($cisla) && !isset($dlzka))
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password"  id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí obsahovať aspoň jedno písmeno !</label></td></tr>';
                        if(isset($dlzka)  && isset($cisla) &&  !isset($znaky))
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo"  name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí mať aspoň 8 znakov a obsahovať aspoň jedno číslo !</label></td></tr>';
                        if(isset($dlzka) && isset($znaky) && !isset($cisla))
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí mať aspoň 8 znakov a obsahovať aspoň jeden znak !</label></td></tr>';
                        if(isset($znaky)&& isset($cisla) && !isset($dlzka) )
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí obsahovať aspoň jedno číslo a znak !</label></td></tr>';
                        if(isset($znaky) && isset($cisla)&& isset($dlzka))
                            echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password"  id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Úplne zlé heslo, musí mať aspoň 8 znakov a obsahovať aspoň jeden znak a jedno číslo !</label></td></tr>';
                        if(!isset($znaky) && !isset($cisla)&& !isset($dlzka)){
                            $hesloOk = 1;
                        }
                    }
                    else {

                        echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslá sa nezhodujú</label></td></tr>';
                        $pocet = 1;
                    }
                }

                ?>
                <?php

                if(!isset($pocet) && !isset($heslo) ) {

                    echo'<tr ><td ><label for="heslo" > Heslo :</label ></td >
                <td ><input type = "password"  id="heslo" name = "heslo" ></td ></tr >';

                }
                if(!isset($pocet) && isset($heslo) && !isset($znaky) && !isset($cisla)&& !isset($dlzka)) {

                    echo'<tr ><td ><label for="heslo" > Heslo :</label ></td >
                <td ><input type = "password"  id="heslo" name = "heslo" value='.$heslo.'></td ></tr >';

                }
                ?>
                <tr><td><label for="heslo2">Heslo znovu :</label></td>
                    <td><input type = "password"  id="heslo1" name="heslo1" value="<?php if(isset($hesloZnovu)) echo $hesloZnovu; ?>" ></td></tr>
                <?php
                if(isset($mail)) {
                    if (!stristr($mail, "@") OR !stristr($mail, ".")) {
                        echo '<tr><td><label for="email">E-mail :</label></td>
                    <td><input type = "text" id="mail" name="email" value='.$mail.'></td><td><label for="zlyMail">Zlý formát emailu</label></td></rd></tr>';
                    } else {
                        $mailOk = 1;
                        echo '<tr><td><label for="email">E-mail :</label></td>
                    <td><input type = "text" id="mail"  name="email" value='.$mail.'></td><td></tr>';
                    }
                }
                else {  ?>
                    <tr><td><label for="email">E-mail :</label></td>
                        <td><input type = "text" id="mail" name="email" value="<?php if(isset($mail)) echo $mail; ?>" > </td></tr>

                <?php } ?>


                <?php  if(isset($cislo) || isset($cisloOk))   {
                    //$pattern = '~^(\+420)? ?\d{3} ?\d{3} ?\d{3}$~';
                    //$phoneNumber = '+420 123 456 789';
                    // $predvolby = array('737', '777', '603', '606');
                    //$predvolbyStr = implode('|', $predvolby);
                    $pattern = '~^(\+421)? ?\d{3} ?\d{3} ?\d{3}$~';
                    if (preg_match($pattern, $cislo))
                        $cisloOk =1;
                    else
                        echo '<tr><td><label for="cislo">Telefónne číslo :</label></td>
                <td><input type = "text" id="cislo" name="cislo" value="'.$cislo .'"></td><td><label for="zleCislo">Zlý formát čísla (Príklad : +421 111 222 333) </label></td></tr>';
                }
                ?>
                <?php if(!isset($cislo) || isset($cisloOk)){ ?>
                    <tr><td><label for="cislo">Telefónne číslo :</label></td>
                        <td><input type = "text" id="cislo" name="cislo" value="<?php if(isset($cislo)) echo $cislo; ?>" ></td></tr>
                <?php } ?>
                <tr><td><input type="button" value="Zaregistrovať" onclick="registruj()" ></td></tr>
            </table>
        </form>

        <?php
        if(isset($mailOk) && isset($hesloOk) && isset($cisloOk)) {
            require "pripojenie.php";
            $length = 20;

            $randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);    
            $zasifrovane = crypt($heslo,$randomString);

            mysqli_query($db,"INSERT INTO uzivatelia (Meno,Priezvisko,Login,Heslo,mail,pohlavie,cislo) VALUES ('$meno','$priezvisko','$login','$zasifrovane','$mail','$pohlavie','$cislo')");

            echo '<script type="text/javascript">window.location.replace("index.php"); </script>';

        }
        ?>

    </div>
<div id="result"></div>

</div>
</body>

那个窗口位置差不多就在html代码的末尾了。为什么?在if以外的每个地方工作但在里面如果它不起作用......但是如果正在进行的所有内容都是如此,以至于窗口位置被忽略或者什么,你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果我在ajax帖子后正确理解你没有提交页面,那么同一页面继续没有window.replace,因为你第一次没有检查登录。

流程应该是:

。你的PHP生成页面

。第一次页面不包含window.replace

。在使用您的ajax邮局调查后,您可以提交表格:

$('form').trigger('submit');

尝试更改文件registraciaudaje.php,以便设置一个新的变量会话,如:

$_SESSION['postOk'] = 'ok';

在您拥有的页面中:

if(isset($mailOk) && isset($hesloOk) && isset($cisloOk)) {

你可以像

那样进行检查
$postOk = $_SESSION["postOk"];
if (isset($postOk)) {
header('location: index.php');
exit();
}