每个文件中的代码都在工作,但在每个表中记录条目重复两次

时间:2014-12-15 11:14:29

标签: javascript php twitter-bootstrap-3 jqbootstrapvalidation

验证过程正确并且数据条目也在发生,但是在表单提交的瞬间,每个表中都会插入两次记录。

**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>
                &nbsp;&nbsp;&nbsp;&nbsp;
                <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";
    ?>

1 个答案:

答案 0 :(得分:0)

尝试在点击事件后禁用该按钮。 尝试添加(您可以在超时后或在ajax成功后启用它)

$(this).attr('disabled',true);

$('#entry_sub_btn').on('click',function(e){

更新

这也可能是因为为该按钮分配了两次click事件。

所以在分配之前,只需取消绑定旧的点击事件并分配新的。

示例代码

$('#entry_sub_btn').off('click').on('click',function(e){