我接受来自用户的永久帐号(pan),在提交之前,我正在检查db中是否已存在pan编号。它正在工作,我也收到一个错误,说 pan no已经注册如果我忽略错误并且不更改盘号并继续提交,它将进入数据库。
我观察到在验证检查后,输入的号码保持不变。我想知道如何在收到错误后清空输入框。如果它仍然为空,则提交按钮将不起作用。那么一旦出现错误,如何从输入框中删除输入的数字,如何将光标焦点放在输入框中?
由于
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"> 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。
答案 0 :(得分:0)
由于不推荐使用mysql(php扩展),因此您应mysqli执行SQL代码。接下来将是逃避传入的POST请求,因为您不希望通过SQL注入被黑客攻击。
您可以使用JSON进行响应,以宣告您是否收到错误的客户端(jQuery)。
此外,不要将PHP错误发送给客户端,您可以使用try / catch解决方案。
答案 1 :(得分:0)
我建议您在这里需要做的是让您的JavaScript 记住服务器告诉它(通过POST
结果)该号码无效。 (或者,更好的是,要记住它尚未告诉您某个特定号码 有效。)如果用户仍然按下按钮,您可以向他提供信息性消息,而不是发送给他服务器什么。
然后,无论如何,您必须还验证服务器端的传入信息。即使您提供AJAX调用来验证PAN编号,服务器也最终负责确保正确更新数据库。在将数字发布到数据库之前,它必须再次检查以查看该数字是否有效。并且,您必须在JavaScript中提供对该结果的适当测试:查看帖子是否成功,如果不成功,为什么不成功。
您的JavaScript不应故意向主机发送丢失或无效的PAN号。但是,主持人不能假设客户是“做正确的事情”。数据库内容的最终责任在于主持人。