避免将每一行多次存储到mysql数据库中

卡鲁皮亚RK

在这里,我正在尝试使用ajax概念验证并将注册详细信息插入数据库中。我试过下面的编码。下面的编码成功地将详细信息插入了数据库,然后它也显示了错误消息。

我的问题是->例如,假设用户未输入姓氏和电子邮件字段。用户仅输入名字,然后单击提交按钮。现在,我收到错误消息(必须输入姓氏)。用户再次填写剩余字段,然后单击“提交”按钮。当我检查数据库表时,我得到两行(应该是一行)。问题是它可以多次存储数据(取决于提交按钮被按下的次数-如果用户收到验证错误消息的5倍存储在同一行中5次,如果用户收到验证错误消息的3倍存储在同一行中3次次)

如何避免多行存储一次?

ajax.js

jQuery(document).ready(function() {
    jQuery("#simple-post").click(function() {
        jQuery("#ajaxform").submit(function(e) {
            jQuery("#simple-msg").html("<img src='loading.gif'/>");
            var postData = $(this).serializeArray();
            var formURL = $(this).attr("action");
            $.ajax( {
                url : 'validation.php',
                type: "POST",
                data :  $('form').serialize(),
                success:function(data, textStatus, jqXHR) {
                    jQuery("#simple-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');
                },
                error: function(jqXHR, textStatus, errorThrown) 
                {
                    $("#simple-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
                }
            });
            e.preventDefault();  //STOP default action
        });

        $("#ajaxform").submit(); //SUBMIT FORM
    });

});

mainpage.php

<form name="ajaxform" id="ajaxform" >
  First Name: <input type="text" name="fname" /> <br/>
  Last Name: <input type="text" name="lname" /> <br/>
  Email : <input type="text" name="email" /> <br/>
  <input type="button"  id="simple-post" value="submit" name="submit"/>
</form>

validation.php

<?php

    include_once('config.php');

    $name = trim($_POST["fname"]);
    $mobile = trim($_POST["lname"]);
    $email = trim($_POST["email"]);

    if($name == "")
    {
        echo 'First Name required';
        die();
    }
    if($mobile == "")
    {
        echo 'Last Name Required';
        die();
    }
    if($email == "")
    {
        echo 'Email required';
        die();
    }

    try
    {
        $stmt = $conn->prepare("INSERT INTO sample ( Name, Mobile, Email ) VALUES ( ?, ?, ? )");
        $conn->errorInfo();
        $stmt->bindParam('1', $name, PDO::PARAM_STR);
        $stmt->bindParam('2', $mobile, PDO::PARAM_STR);
        $stmt->bindParam('3', $email, PDO::PARAM_STR);
        $stmt->execute();
        echo 'inserted succesfully';
    }
    catch(PDOException $e)
    {
        echo 'failed to insert ' .$e->getMEssage();
    }

?>
阿克塞尔·安索(Axel Amthor)

简单的:

jQuery(document).ready(function() {
    jQuery("#simple-post").click(function() {

            jQuery("#simple-msg").html("<img src='loading.gif'/>");
            var postData = $(this).serializeArray();
            var formURL = $(this).attr("action");
            $.ajax( {
                url : 'validation.php',
                type: "POST",
                data :  $('form').serialize(),
                success:function(data, textStatus, jqXHR) {
                    jQuery("#simple-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');

                },
                error: function(jqXHR, textStatus, errorThrown) 
                {
                    $("#simple-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
                }
            });
            e.preventDefault();  //STOP default action
        });

});

在验证AJAX调用的成功处理程序中提交表单,而不是在外部无条件提交。

另外,您根本不需要提交处理程序。用户单击按钮后,验证表单,成功后数据将已经在数据库中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

数据库不同div中的每一行

将一行中的每个列与数据库sql中的每一行进行比较

避免将数据插入到mysql数据库的新行中

将每重复5行中给出的excel数据导入数据库中的一行。Laravel 5.8

使用PHP,Ajax和JavaScript将数据库中每一行的数据放入单独的div中

如何在SQL中为select的每一行将行插入数据库?

如何将数据从Google电子表格存储到数据库(:-仅将第一行的第一行存储到数据库

将IP存储到mysql数据库中

如何使用Meteor将列表中每一行的列值存储到集合中?

如何将每一行存储到变量中

将一行值(列表格式)与列也作为列表插入到 sqlite 数据库表中

数据库输出每一页的每一行

在数据库中插入单选值多个数据codeigniter到一行?

Spark多次将查询运行到数据库中

如何将 MySQL 数据库中的数据存储到由 id 索引的数组中?

将整个向量/列表绑定到 R 中数据帧的每一行的更好方法?

如何使用 PHP 为数据库中的每一行创建一个唯一的页面?

读取文件的每一行,条件是将行存储到bash中的另一个文件

如何使用jdbc连接将数据从excel工作表存储到mysql数据库中

将字符串的每一行中的第一个单词存储到列表中

Ruby:如何将许多.txt文件中的每一行存储到一个变量中

Java,从 Derby 数据库中获取数据并将每一行转换为 Json 对象

Laravel 将 Excel 数据存储到数据库中

您可以在PHP / MySQL数据库的表的每一行内制作/插入表吗?

将 json 内容从 API 存储到 mysql 数据库

将iOS设备令牌存储到MySQL数据库

如何将Ajax中的一行数据保存到数据库?

如何将表单中的值存储到mySQL数据库中?

如何将MySQL数据库中的值存储到变量中?