简体   繁体   中英

code in each file is working but records entry repeats for two times in each table

Validation process is correct and data entries are also happening but records are inserted two times in each table at an instant of form submission.

**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 code

$('#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 CODE

<?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";
    ?>

try disabling the button after the click event. try adding (you can enable it after a timeout or after the ajax is success)

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

after

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

UPDATE

This can also be because the click event is assigned twice for that button.

so before assigning, just unbind the old click event and assign new.

sample code

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM