Click here to Skip to main content
15,887,214 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want to create two reports and submit the report data to database by using two functions defined in a class: Here I have two buttons: "Create ES" and "Create RP".

Rightnow, my forms are working fine, I can insert data successfully, but the problem was when I click on submit after filling the form data, the content is hiding and displays the fist div content "cs_content" and again I need to onclick to submit again.

Could anyone give a solution for this.

Requirement :

When I click on "Create CS", I should be able to fill the form and submit data successfully with a message within "cs_content" and any form input errors, the errors should display within "cs_content".

When I click on "Create RP", I should be able to fill the form and submit data successfully with a message within "rp_content" and any form input errors, the errors should display within "rp_content".


home.php
PHP
<?php
 require 'classes/class.report.php';
 $report = new Report($db);	
?>
<html>
  <head>      
   <script src="js/jqueryv1.10.2.js"></script>
   <script>
    
       $ (document).ready(function () 
       {
          //$("#cs_content").show();
          $('#cs').click(function () 
          {
            $('#cs_content').fadeIn('slow');
            $('#rp_content').hide();
          });
          $('#rp').click(function () 
          {
            $('#rp_content').fadeIn('slow');
            $('#cs_content').hide();
          });
       });
   </script>
  </head>  
  <body>
     <div class="container2">
		   <div style="margin:0px 0px;padding:3px 217px;overflow:hidden;">
		     <div id="cs" style="float:left;margin:0px 0px;padding:7px;"><input type="button" value="CREATE CS"></div>
		     <div id="rp" style="float:left;margin:0px 0px;padding:7px;"><input type="button" value="CREATE RP"></div><br>
           </div>
           <div id="cs_content"> <?php $report->create_cs_report(); ?> </div>			 
           <div id="rp_content" style="display:none;"> <?php $report->create_rp_report(); ?> </div>	       
	 </div>
  </body>
</html>



class.report.php

PHP
<?php
       class Report
       {
          private $db;

          public function __construct($database){
             $this->db = $database;
          }

          public function create_cs_report()
          {
             if (isset($_POST['create_es_report']))
             {
                $report_name = htmlentities($_POST['report_name']);
                $from_address = htmlentities($_POST['from_address']);
                $subject = htmlentities($_POST['subject']);
                $reply_to = htmlentities($_POST['reply_to']);


                if (empty($_POST['report_name']) || empty($_POST['from_address']) || empty($_POST['subject']) || empty($_POST['reply_to']))
                {
                   $errors[] = '<span class="error">All fields are required.</span>';
                }
                else
                {
                   if (isset($_POST['report_name']) && empty($_POST['report_name'])) { $errors[] = '<span class="error">Report Name is required</span>'; }
                   else if (!ctype_alnum($_POST['report_name']))
                   {  $errors[] = '<span class="error">Report Name: Whitespace is not allowed, only alphabets and numbers are required</span>';  }

                   if (isset($_POST['from_address']) && empty($_POST['from_address']))
                   { $errors[] = '<span class="error">From address is required</span>'; }
                   else if (filter_var($_POST['from_address'], FILTER_VALIDATE_EMAIL) === false)
                   { $errors[] = '<span class="error">Please enter a valid From address</span>';  }

                   if (isset($_POST['subject']) && empty($_POST['subject'])) { $errors[] = '<span class="error">Subject is required</span>'; }
                   else if (!ctype_alnum($_POST['subject']))
                   {  $errors[] = '<span class="error">Subject: Whitespace is not allowed, only alphabets and numbers are required</span>';  }

                   if (isset($_POST['reply_to']) && empty($_POST['reply_to'])) { $errors[] = '<span class="error">Reply To is required</span>'; }
                   else if (filter_var($_POST['reply_to'], FILTER_VALIDATE_EMAIL) === false)
                   { $errors[] = '<span class="error">Please enter a valid Reply-To address</span>';  }
                }

                if (empty($errors) === true)
                {
                    $query = $this->db->prepare("INSERT INTO report(report_name, from_address, subject, reply_to) VALUES (?, ?, ?, ?) ");

                    $query->bindValue(1, $report_name);
                    $query->bindValue(2, $from_address);
                    $query->bindValue(3, $subject);
                    $query->bindValue(4, $reply_to);

                    try {
                      $query->execute();
                    }

                    catch(PDOException $e) {
                       die($e->getMessage());
                    }
                    header('Location:home.php?success');
                    exit();
                }
             }

             if (isset($_GET['success']) && empty($_GET['success']))
             {
                 header('Location:home.php');
                 echo '<span class="error">Report is succesfully created</span>';
             }

             ?>

             <form action="" method="POST" accept-charset="UTF-8">
                 <div style="font-weight:bold;padding:17px 80px;text-decoration:underline;">Section A</div>
                 <table class="create_report">
                   <tr><td><label>Report Name</label><span style="color:#A60000">*</span></td>
                       <td><input type="text" name="report_name" required placeholder="Name of the report" value="<?php if(isset($_POST["report_name"])) echo $report_name; ?>" size="30" maxlength="30">
                   </td></tr>

                     <tr><td><label>From</label><span style="color:#A60000">*</span></td>
                         <td><input type="text" name="from_address" required placeholder="From address" value="<?php if(isset($_POST["from_address"])) echo $from_address; ?>" size="30">
                     </td></tr>

                     <tr><td><label>Subject</label><span style="color:#A60000">*</span></td>
                         <td><input type="text" name="subject" required placeholder="Subject" value="<?php if(isset($_POST["subject"])) echo $subject; ?>" size="30">
                     </td></tr>

                     <tr><td><label>Reply To</label><span style="color:#A60000">*</span></td>
                         <td><input type="text" name="reply_to" required placeholder="Reply address" value="<?php if(isset($_POST["reply_to"])) echo $reply_to; ?>" size="30">
                     </td></tr>

                  <tr><td><input type="submit" value="create report" style="background:#8AC007;color:#080808;padding:6px;" name="create_es_report"></td></tr>
                </table>
             </form>

             <?php
               //IF THERE ARE ERRORS, THEY WOULD BE DISPLAY HERE
               if (empty($errors) === false) {
                  echo '<div>' . implode('</p><p>', $errors) . '</div>';
               }
         }
      }//Report CLASS ENDS
Posted
Updated 10-Jun-14 16:28pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900