验证过程正确并且数据条目也在发生,但是在表单提交的瞬间,每个表中都会插入两次记录。
**library.php HTML CODE**
<form id="book_entry_form">
<table class="table borderless table-condensed">
<tr>
<td><label for="entry_isbn">ISBN No.:</label></td>
<td><input type="text" id="entry_isbn" class="form-control input-sm eqtxt" name="entry_isbn"></td>
</tr>
<tr>
<td><label for="entry_subject">Subject:</label></td>
<td><input type="text" id="entry_subject" class="form-control input-sm eqtxt" name="entry_subject"></td>
</tr>
<tr>
<td></td>
<td>
<button id="entry_sub_btn" type="submit" class="btn btn-primary logbtn">Submit</button>
<button href="#" type="reset" class="btn btn-primary logbtn">Refresh</button>
</td>
</tr>
</table><!-- table closed -->
</form><!-- form -->
lib_book_reg.js Javascript代码
$('#book_entry_form').bootstrapValidator({
group: 'td',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
entry_isbn: {
message: 'The ISBN NO. is not valid',
validators: {
notEmpty: {
message: 'ISBN No. is required and cannot be empty'
}
}
},
entry_subject: {
message: 'The subject name is not valid',
validators: {
notEmpty: {
message: 'Subject name is required and cannot be empty'
}
}
}
}
})
.on('success.field.bv', function(e, data) {
if (data.bv.isValid()) {
data.bv.disableSubmitButtons(false);
$('#entry_sub_btn').on('click',function(e){
e.preventDefault();
e.stopPropagation();
var entry_isbn = $('#entry_isbn').val();
var entry_subject= $('#entry_subject').val();
$.ajax({
url: 'php/lib_book_reg.php',
type: 'post',
data: { 'entry_isbn':entry_isbn, 'entry_subject':entry_subject },
success: function(data) {
alert(data);
window.location.reload(true);
},
cache: false
}); // end ajax call
}); // end of button click event
} //end of if statement
}); // end of main function
lib_book_reg.php PHP代码
<?php
session_start();
if($_SESSION['user'] != "Library")
{
echo "Only Librarian is authorized to make an entry!";
exit();
}
require 'config.php';
// $eid = $_POST['eid'];
$entry_isbn = $_POST['entry_isbn'];
$entry_subject = $_POST['entry_subject'];
$stmt = $dbh->prepare("INSERT INTO lib_book_reg(l_book_isbn, l_book_subject) VALUES(?,?)");
$stmt->execute(array($entry_isbn, $entry_subject));
$stmt1 = $dbh->prepare("INSERT INTO l_book_opr_db(l_book_isbn, l_book_subject) VALUES(?,?)");
$stmt1->execute(array($entry_isbn, $entry_subject));
echo "Registered Successfully";
?>
答案 0 :(得分:0)
尝试在点击事件后禁用该按钮。 尝试添加(您可以在超时后或在ajax成功后启用它)
$(this).attr('disabled',true);
后
$('#entry_sub_btn').on('click',function(e){
更新
这也可能是因为为该按钮分配了两次click事件。
所以在分配之前,只需取消绑定旧的点击事件并分配新的。
示例代码
$('#entry_sub_btn').off('click').on('click',function(e){