Процесс проверки корректен, записи также выполняются, но записи вставляются два раза в каждую таблицу в момент отправки формы.
**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";
?>
попробуйте отключить кнопку после события щелчка.
попробуйте добавить (вы можете включить его после тайм-аута или после успешного выполнения ajax)
$(this).attr('disabled',true);
после
$('#entry_sub_btn').on('click',function(e){
ОБНОВИТЬ
Это также может быть связано с тем, что событие нажатия дважды назначается для этой кнопки.
поэтому перед назначением просто отсоедините старое событие click и назначьте новое.
образец кода
$('#entry_sub_btn').off('click').on('click',function(e){
Других решений пока нет …