在ajax之后将页面内容复制到同一页面 - php

我有简单的注册公式,我希望首先使用ajax发送,而不刷新页面以控制是否插入正确的数据,然后仅重定向到其他页面。问题是,当我通过ajax将其发送到同一页面后,一切正常,但是页面内容重复,我可以看到两次...

这是我的ajax

function registruj () {
    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( "", {
            'meno': name,
            'priezvisko': priez,
            'login':log,
            'mail':mail,
            'cislo':cisloTel,
            'heslo':heslo,
            'heslo1':heslo1,

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

        }


    );

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

}

这是我的PHP文件

<?php

session_start();
if(isset($_POST["meno"]) ) {
    echo "kokot";
    echo $_POST['meno'];
    require "pripojenie.php";
    $meno = $_POST["meno"];
    $priezvisko = $_POST["priezvisko"];
    $login = $_POST["login"];
    $heslo = $_POST["heslo"];
    $hesloZnovu = $_POST["heslo1"];
    if(isset($_POST["pohlavie"]))
        $pohlavie = $_POST["pohlavie"];
    $mail = $_POST['mail'];
    $cislo = $_POST['cislo'];
    //$id = $_SESSION['id'];



}
?>

<!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>

    <style type="text/css"> </style>

    <script type="text/javascript" src="mojskript.js"></script>
    <link rel="stylesheet" href="css/normalize.css">
    <link rel="stylesheet" type="text/css" href="css/style1.css" />
</head>
<body  class="registracia">
<div class="container">

<div id="nove">










        <form  >

            <table >
                <tr><td><label for="napdis">Vyplňte nasledujúci formulár:</label></td></tr>
                <tr><td><input type="radio" name="pohlavie" value="zena" id="zena" >Žena</td></tr>
                <br>
                <tr><td><input type="radio" name="pohlavie" value="muz" id="muz">Muž</td></tr>
                <br>
                <tr><td><label for="meno">Meno :</label></td><td><input type = "text" id="meno" name="meno"></td></tr><br>
                <tr><td><label for="priezvisko">Priezvisko :</label></td><td><input type = "text" id="priezvisko" name="priezvisko"></td></tr><br>
                <tr><td><label for="login">Login :</label></td>
                    <td><input type = "text" id="login" name="login"></td></tr><br>

                <?php
                if(isset($heslo)) {
                    if (($heslo != "" && $hesloZnovu != "") && ($heslo == $hesloZnovu)) {

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

                ?>
                <?php

                if(!isset($pocet)) {

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

                }

                ?>

                <tr><td><label for="cislo">Telefónne číslo :</label></td>
                    <td><input type = "text" id="cislo" name="cislo"></td></tr><br>
                <tr><td><input type="button" value="Zaregistrovať" onclick="registruj()" ></td></tr>
            </table>
        </form>

        <?php
        if(isset($mailOk) && isset($hesloOk)) {
            $length = 20;

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


            $zasifrovane = crypt($heslo,$randomString);
            echo $zasifrovane;
            mysql_query("INSERT INTO uzivatelia (Meno,Priezvisko,Login,Heslo,mail,pohlavie,cislo) VALUES ('$meno','$priezvisko','$login','$zasifrovane','$mail','$pohlavie','$cislo')");
            header("location:index.php");
        }
        ?>

    </div>

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

我该怎么办?

参考方案

尝试像这样使用exit();

session_start();
if(isset($_POST["meno"]) ) {
    echo "kokot";
    echo $_POST['meno'];
    require "pripojenie.php";
    $meno = $_POST["meno"];
    $priezvisko = $_POST["priezvisko"];
    $login = $_POST["login"];
    $heslo = $_POST["heslo"];
    $hesloZnovu = $_POST["heslo1"];
    if(isset($_POST["pohlavie"]))
        $pohlavie = $_POST["pohlavie"];
    $mail = $_POST['mail'];
    $cislo = $_POST['cislo'];
    //$id = $_SESSION['id'];
    exit();
}

完成ajax处理后,使用exit();die();,否则它将返回所有页面内容。

CodeIgniter更新查询被执行两次 - php

我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…

故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php

我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…

通过php表单修改我的xml文件 - php

这是我的xml文件和下面的php代码。我输入了一个输入类型,它将按名字搜索学生。然后将显示有关特定学生的信息,并且将显示另一个按钮更新。问题是我想在那之后修改信息。如何通过标签名称获取元素,以便可以修改有关特定学生的信息?<students> <student> <firstname>John</firstname&…

Div单击与单选按钮相同吗? - php

有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date&#…

PHP-复选框组 - php

我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…