我有一个包含输入文本框和提交按钮的表单。
在提交表单时,文本框值应该传递给php脚本并检查它是否存在于Mysql数据库中。如果它存在,那么我们需要显示一个警告框,指出“已存在的值已存在,尝试新的事物”。如果该值不存在,则可以将表单提交给表单操作中的php脚本。
我尝试使用jquery,代码如下:
$(document).ready(function() {
$("#form_add").submit(function () {
var pval = $("#name").val();
var datastring = 'pname'+pval;
$.post("unique_valid.php", {pname:pval }, function (data){
alert('duplicate');
});
return false;
});
});
此代码的问题是它在每个案例中显示警告框,但如果数据库中不存在值,则不允许提交表单。
Php代码:
$pname = $_POST['pname'];
if( $pname == $row['name']){
echo "success";
}else{
echo "failure";
}
建议更好地解决此问题。
答案 0 :(得分:2)
那是因为无论PHP输出是什么,你都会警告'重复'。在发出警报之前,请尝试检查data
的值,如下所示:
$(document).ready(function() {
$("#form_add").submit(function () {
var pval = $("#name").val();
var datastring = 'pname'+pval;
$.post("unique_valid.php", {pname:pval },
function (data){
if(data == 'failure'){
alert('duplicate');
}else{
alert('not a duplicate');
}
});
return false;
});
});
我假设你的PHP代码实际上会保存记录,如果它不是重复的(虽然你的代码没有表明那么多)?