javascript - 尽管出现错误,数据仍存储在数据库中

标签 javascript php ajax

我接受用户的永久帐号(pan),在提交之前,我正在检查数据库中是否已存在该帐号。它正在工作,并且我还收到一条错误消息,指出pan no已经注册如果我忽略该错误并且不更改pan number并继续提交,它将进入数据库。

我观察到,验证检查后,输入的数字保留在那里。我想知道出现错误后如何清空输入框。如果它仍然为空,则提交按钮将不起作用。那么出现错误后如何删除输入框中输入的数字以及如何让光标焦点在输入框中呢?

谢谢

enter image description here

HTML

<input name="panno" type="text"  id="panno" style="width:219px;" />
<span id="pan_status1"></span>

功能

$("#panno").change(function()
            {
                $("#pan_status1").html('<img src="images/9.gif" align="absmiddle">&nbsp;Loading Please wait...');
                var id=$(this).val();
                var dataString = 'panno='+ id;
                $.ajax
                ({
                    type: "POST",
                    url: "checkp.php",
                    data: dataString,
                    cache: false,
                    success: function(html)
                    {
                        $("#pan_status1").html(html);

                    } 
                });

            });

CHECKP.PHP

<?php

require("connection/config.php");
    if(isset($_POST['panno']))
    {
    $mpan = $_POST['panno'];

    $sql_check = mysql_query("select * from register where pan_no='".$mpan."'") or die(mysql_error());

    if(mysql_num_rows($sql_check))
    {
    echo '<font color="red"><STRONG>'.$madhar.'</STRONG> is already registered.</font>';


             $response = array();
             $response['successStatus'] = 'error';
             $response['responseMessage'] = $erroMessage;
             header('Content-type: application/json');
             echo json_encode($response);      

    }
    else
    {
             $response = array();
             $response['successStatus'] = 'success';
             $response['responseMessage'] = $erroMessage;
             header('Content-type: application/json');
             echo json_encode($response);
    }
}
?>

编辑

我对 php 文件进行了更改。现在,当我输入潘号时,如果数据库中不存在输入的潘号,我会在输入按钮旁边得到以下输出

{"successStatus":"success","responseMessage":null}

如果它存在,我会得到以下内容

123456789012 is already registered.{"successStatus":"error","responseMessage":null}

现在状态已捕获,如果状态为错误,如何使输入字段为空

如果状态成功,我不想显示 html/json 输出,如果状态错误,我只想显示 html。

最佳答案

由于 mysql(php 扩展)已被弃用,您应该 mysqli执行您的 SQL 代码。接下来是转义传入的 POST 请求,因为您不想通过 SQL 注入(inject)遭到黑客攻击。

您可以使用 JSON 进行响应,以便向客户端 (jQuery) 宣布您是否出现错误。

此外,不要向客户端发送 PHP 错误,您可以使用 try/catch 解决方案。

关于javascript - 尽管出现错误,数据仍存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267784/

相关文章:

javascript - ajax post带有参数500服务器未找到错误

javascript - jQuery 添加自定义密码规则不起作用

php - 使用时间定义语言

php - 开源 php docx 到 pdf 的转换?

php - 一个 php 文件作为 img src

javascript - Jquery 事件委托(delegate)问题

JavaScript 类型错误 : cannot read property of undefined

javascript - 从数据集中预测/估计下一个数字

javascript - Chrome 扩展程序通知未显示 contextMessage?

javascript - 在laravel中使用ajax提交多个表单