Home > front end >  stop other form1 from submitting when submitting form2 using php/javascript or jquery
stop other form1 from submitting when submitting form2 using php/javascript or jquery

Time:09-17

this is the real code I am doing the first post contains the same problem,

as you can see the form 1 buttons is to control the iteration of the $_SESSION['clicks'] value i am using sessions in this form,

the form 2 buttons are to echo out the array for corresponding names that are retrieved from another array.

and the problem is every time the buttons in form2 is clicked or called out in php the other form or form1 gets submitted too

     <?php 
        session_start();
        $results_per_page = 10;
        if (!isset($_GET['page'])) {
            $page = 1;
        }else{
            $page = $_GET['page'];
        }
        $stmt1 = $conn->prepare("SELECT*FROM doctors"); 
        $stmt1->execute();
        $stmt2 = $conn->prepare("SELECT*FROM doctors ORDER BY doctor_name ASC");
        $stmt2->execute();

        while($row = $stmt2->fetch()) {
            $result[] = [
                'name' => $row['doctor_name'],
                'degree' => $row['doctor_degree'],
                'foe' => $row['doctor_foe'],
            ];
        }
    ?>

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div>
            <form method="post">
                <?php
                    $next = "<button class='btn-nav' name='plus'>Next</button>";
                    $prev = "<button class='btn-nav' name='min'>Prev</button>";

                    $next_un = "<button class='btn-nav' name='plus' disabled>Next</button>";
                    $prev_un = "<button class='btn-nav' name='min' disabled>Prev</button>";
                    $results = count($result);
                    $num_of_pages = ceil($results/$results_per_page);

                    $clicks = 0;
                    if (isset($_POST['plus'])) {
                        $_SESSION['clicks']  = 10 ;
                    }else {
                        $_SESSION['clicks'] -= 10;
                    }

                    if ($_SESSION['clicks']>0) {
                        echo $prev;
                    }else{
                        echo $prev_un;
                    }
                    if ($_SESSION['clicks']>=($results-10)) {
                        echo $next_un;
                    }else{
                        echo $next;
                    }

                    $newarr = array_slice($result, $_SESSION['clicks'], 10);
                ?>
            </form>
        </div>
        <div>
            <table class="appt">
                <?php 
                    foreach ($newarr as $row) {
                    echo "<tr><td>".$row['name']
                        ."</td><td>".$row['degree']
                        ."</td><td>".$row['foe']."</td></tr>";
                    }

                    echo $new_count = count($newarr);
                 ?>
            </table>
            <table class="appt">
                <form method="post">
                    <tr><th>Set Appointment</th></tr>
                    <?php
                        switch ($new_count) {
                            case '10':
                                echo '<tr><td><button type="button" name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa4">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa5">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa6">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa7">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa8">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa9">Set Appointment</button></td></tr>';
                                echo '<tr><td><button type="button" name="sa10">Set Appointment</button></td></tr>';
                                break;
                            case '9':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa7">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa8">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa9">Set Appointment</button></td></tr>';
                                break;
                            case '8':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa7">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa8">Set Appointment</button></td></tr>';
                                break;
                            case '7':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa7">Set Appointment</button></td></tr>';
                                break;
                            case '6':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa6">Set Appointment</button></td></tr>';
                                break;
                            case '5':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa5">Set Appointment</button></td></tr>';
                                break;
                            case '4':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa4">Set Appointment</button></td></tr>';
                                break;
                            case '3':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa3">Set Appointment</button></td></tr>';
                                break;
                            case '2':
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                echo '<tr><td><button name="sa2">Set Appointment</button></td></tr>';
                                break;
                            default:
                                echo '<tr><td><button name="sa1">Set Appointment</button></td></tr>';
                                break;
                        }
                    ?>
                </form>
            </table>
        </div>
        <?php 
            $sa1 = $_POST['sa1'] ?? '';
            $sa2 = $_POST['sa2'] ?? '';
            $sa3 = $_POST['sa3'] ?? '';
            $sa4 = $_POST['sa4'] ?? '';
            $sa5 = $_POST['sa5'] ?? '';
            $sa6 = $_POST['sa6'] ?? '';
            $sa7 = $_POST['sa7'] ?? '';
            $sa8 = $_POST['sa8'] ?? '';
            $sa9 = $_POST['sa9'] ?? '';
            $sa10 = $_POST['sa10'] ?? '';


            if (isset($_POST['sa1'])) {
                echo $newarr[0]['name'];
                echo $newarr[0]['degree'];
                echo $newarr[0]['foe'];
            }else if (isset($_POST['sa2'])) {
                echo $newarr[1]['name'];
                echo $newarr[1]['degree'];
                echo $newarr[1]['foe'];
            }else if (isset($_POST['sa3'])) {
                echo $newarr[2]['name'];
                echo $newarr[2]['degree'];
                echo $newarr[2]['foe'];
            }else if (isset($_POST['sa4'])) {
                echo $newarr[3]['name'];
                echo $newarr[3]['degree'];
                echo $newarr[3]['foe'];
            }else if (isset($_POST['sa5'])) {
                echo $newarr[4]['name'];
                echo $newarr[4]['degree'];
                echo $newarr[4]['foe'];
            }else if (isset($_POST['sa6'])) {
                echo $newarr[5]['name'];
                echo $newarr[5]['degree'];
                echo $newarr[5]['foe'];
            }else if (isset($_POST['sa7'])) {
                echo $newarr[6]['name'];
                echo $newarr[6]['degree'];
                echo $newarr[6]['foe'];
            }else if (isset($_POST['sa8'])) {
                echo $newarr[7]['name'];
                echo $newarr[7]['degree'];
                echo $newarr[7]['foe'];
            }else if (isset($_POST['sa9'])) {
                echo $newarr[8]['name'];
                echo $newarr[8]['degree'];
                echo $newarr[8]['foe'];
            }elseif (isset($_POST['sa10'])) {
                echo $newarr[9]['name'];
                echo $newarr[9]['degree'];
                echo $newarr[9]['foe'];
            }
            //session_destroy();
         ?>
    </body>
    </html>

CodePudding user response:

Hi think I understand what you're trying to say.

just wrap the logic from your form with the following:

<?php 

   if(isset($_POST['btn1'])) {
     //Code for form 1
   }

   if(isset($_POST['btn2'])) {
     //Code for form 2
   }

CodePudding user response:

sorry for bothering you guys, i found my mistake. it is the if else of the session['click'] that is triggering the events which is causing for the said form1 to be submitted. and thanks for the suggestion of making my codes more shorter!

            <?php 
                include 'connection.php';
                session_start();
                $results_per_page = 10;
                if (!isset($_GET['page'])) {
                    $page = 1;
                }else{
                    $page = $_GET['page'];
                }
                $stmt1 = $conn->prepare("SELECT*FROM doctors"); 

                $stmt1->execute();

                $stmt2 = $conn->prepare("SELECT*FROM doctors ORDER BY doctor_name ASC");
                $stmt2->execute();

                while($row = $stmt2->fetch()) {
                    $result[] = [
                        'name' => $row['doctor_name'],
                        'degree' => $row['doctor_degree'],
                        'foe' => $row['doctor_foe'],
                    ];
                }
            ?>

            <!DOCTYPE html>
            <html>
            <head>
                <meta charset="utf-8">
                <title></title>
                <style type="text/css">
                    th, td{
                        width: 200px;
                        text-align: left;
                    }
                    div{
                        display: flex;
                    }
                </style>
            </head>
            <body>
                <div>
                    <form method="post">
                        <?php
                            $next = "<button class='btn-nav' name='plus'>Next</button>";
                            $prev = "<button class='btn-nav' name='min'>Prev</button>";

                            $next_un = "<button class='btn-nav' name='plus' disabled>Next</button>";
                            $prev_un = "<button class='btn-nav' name='min' disabled>Prev</button>";
                            $results = count($result);
                            $num_of_pages = ceil($results/$results_per_page);

                            $clicks = 0;
                            if (isset($_POST['plus'])) {
                                $_SESSION['clicks']  = 10 ;
                            }else if (isset($_POST['min'])){
                                $_SESSION['clicks'] -= 10;
                            }

                            if ($_SESSION['clicks']>0) {
                                echo $prev;
                            }else{
                                echo $prev_un;
                            }
                            if ($_SESSION['clicks']>=($results-10)) {
                                echo $next_un;
                            }else{
                                echo $next;
                            }

                            $newarr = array_slice($result, $_SESSION['clicks'], 10);
                        ?>
                    </form>
                </div>
                <div>
                    <table class="appt">
                        <tr>
                            <th>Doctor's Name</th>
                            <th>Educational Background</th>
                            <th>Field of Expertise</th>
                            <th>Set An Appointment</th>
                        </tr>
                        <?php 
                            foreach ($newarr as $row) {
                            echo "<tr><td>".$row['name']
                                ."</td><td>".$row['degree']
                                ."</td><td>".$row['foe']."</td></tr>";
                            }

                            echo $new_count = count($newarr);
                         ?>
                    </table>
                    <table class="appt">
                        <form method="post">
                            <tr><th>Set Appointment</th></tr>
                            <?php for ($i=1; $i < ($new_count 1); $i  ): ?>
                                <?php echo '<tr><td><button id="submit" name="sa'.$i.'">Click me!</button></td></tr>'; ?>
                            <?php endfor ?>
                        </form>
                    </table>
                </div>
                <?php 
                    $sa1 = $_POST['sa1'] ?? '';
                    $sa2 = $_POST['sa2'] ?? '';
                    $sa3 = $_POST['sa3'] ?? '';
                    $sa4 = $_POST['sa4'] ?? '';
                    $sa5 = $_POST['sa5'] ?? '';
                    $sa6 = $_POST['sa6'] ?? '';
                    $sa7 = $_POST['sa7'] ?? '';
                    $sa8 = $_POST['sa8'] ?? '';
                    $sa9 = $_POST['sa9'] ?? '';
                    $sa10 = $_POST['sa10'] ?? '';


                    if (isset($_POST['sa1'])) {
                        echo $newarr[0]['name'];
                        echo $newarr[0]['degree'];
                        echo $newarr[0]['foe'];
                    }else if (isset($_POST['sa2'])) {
                        echo $newarr[1]['name'];
                        echo $newarr[1]['degree'];
                        echo $newarr[1]['foe'];
                    }else if (isset($_POST['sa3'])) {
                        echo $newarr[2]['name'];
                        echo $newarr[2]['degree'];
                        echo $newarr[2]['foe'];
                    }else if (isset($_POST['sa4'])) {
                        echo $newarr[3]['name'];
                        echo $newarr[3]['degree'];
                        echo $newarr[3]['foe'];
                    }else if (isset($_POST['sa5'])) {
                        echo $newarr[4]['name'];
                        echo $newarr[4]['degree'];
                        echo $newarr[4]['foe'];
                    }else if (isset($_POST['sa6'])) {
                        echo $newarr[5]['name'];
                        echo $newarr[5]['degree'];
                        echo $newarr[5]['foe'];
                    }else if (isset($_POST['sa7'])) {
                        echo $newarr[6]['name'];
                        echo $newarr[6]['degree'];
                        echo $newarr[6]['foe'];
                    }else if (isset($_POST['sa8'])) {
                        echo $newarr[7]['name'];
                        echo $newarr[7]['degree'];
                        echo $newarr[7]['foe'];
                    }else if (isset($_POST['sa9'])) {
                        echo $newarr[8]['name'];
                        echo $newarr[8]['degree'];
                        echo $newarr[8]['foe'];
                    }elseif (isset($_POST['sa10'])) {
                        echo $newarr[9]['name'];
                        echo $newarr[9]['degree'];
                        echo $newarr[9]['foe'];
                    }
                 ?>
            </body>
            </html>
  • Related