在这里,我正在尝试使用ajax概念验证并将注册详细信息插入数据库中。我试过下面的编码。下面的编码成功地将详细信息插入了数据库,然后它也显示了错误消息。
我的问题是->例如,假设用户未输入姓氏和电子邮件字段。用户仅输入名字,然后单击提交按钮。现在,我收到错误消息(必须输入姓氏)。用户再次填写剩余字段,然后单击“提交”按钮。当我检查数据库表时,我得到两行(应该是一行)。问题是它可以多次存储数据(取决于提交按钮被按下的次数-如果用户收到验证错误消息的5倍存储在同一行中5次,如果用户收到验证错误消息的3倍存储在同一行中3次次)
如何避免多行存储一次?
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
});
});
<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>
<?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();
}
?>
简单的:
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] 删除。
我来说两句