Nisha
Nisha

Reputation: 79

How to show the success message of PHP in html page on Form submission

I am developing website in html. In Careers.html page i am having Apply button. On clicking that apply button it will send the mail using php file. On suceess event i need to set the alert or to show the div on the same Careers.html page.

Careers.html

<form method="post" action="Applyresume.php" enctype="multipart/form-data"> 
     <tr>
     <td>First Name  </td>
     <td><input type="TextBox" name="First_Name" class="applytext" required></td>
     </tr>
     <tr>
     <td>Last Name </td>
     <td><input type="TextBox" name="Last_Name" class="applytext" required></td>
     </tr>
     <tr>
     <td>E-mail  </td>
     <td><input type="TextBox" name="email" class="applytext" required></td>
     </tr>
     <tr>
     <td>Phone  </td>
     <td><input type="TextBox" name="Phone_No" class="applytext" required></td>
     </tr>
      <tr>
    <td>Attachment  </td>
    <td><input type="file" name="attachment" maxlength="50" allow="text/*" class="applytext" required></td>
    </tr>
     <tr>
     <td colspan="2"><input type="submit" name="button" class="send-resume" value="SEND" style="margin-left:24%;">
    <input type="reset" value="RESET" style="margin-left:8%"></td>
     </tr>
     </form>

Applyresume.php

 <?php 
    if($_POST && isset($_FILES['attachment']))
    {  
        $name= $_POST['First_Name'];
        $lname= $_POST['Last_Name'];
        $email= $_POST['email'];
        $phonenum = $_POST['Phone_No'];
        $from_email = $_POST['email']; //sender email
        $recipient_email = '[email protected]'; //recipient email
        $subject = 'Test Email '; //subject of email
        $message = 'Resume attached below.'; //message body
            $emailbod = "$name
        $lname
         $email
         $phonenum";
        //get file details we need
        $file_tmp_name    = $_FILES['attachment']['tmp_name'];
        $file_name        = $_FILES['attachment']['name'];
        $file_size        = $_FILES['attachment']['size'];
        $file_type        = $_FILES['attachment']['type'];
        $file_error       = $_FILES['attachment']['error'];

        $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);

        if($file_error>0)
        {
            die('upload error');
        }
        //read from the uploaded file & base64_encode content for the mail
        $handle = fopen($file_tmp_name, "r");
        $content = fread($handle, $file_size);
        fclose($handle);
        $encoded_content = chunk_split(base64_encode($content));


            $boundary = md5("sanwebe"); 
            //header
            $headers = "MIME-Version: 1.0\r\n"; 
            $headers .= "From:".$from_email."\r\n"; 
            $headers .= "Reply-To: ".$user_email."" . "\r\n";
            $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n"; 

            //plain text 
            $body = "--$boundary\r\n";
            $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
            $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; 
            $body .= chunk_split(base64_encode($emailbod)); 

            //attachment
            $body .= "--$boundary\r\n";
            $body .="Content-Type: $file_type; name=\"$file_name\"\r\n";
            $body .="Content-Disposition: attachment; filename=\"$file_name\"\r\n";
            $body .="Content-Transfer-Encoding: base64\r\n";
            $body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n"; 
            $body .= $encoded_content; 



        $sentMail = @mail($recipient_email, $subject,  $body, $headers);
        if($sentMail) //output success or failure messages
        { 
                 echo '<script type="text/javascript">alert("Thanks for your interest. Your Resume has been sent to [email protected]");window.location.assign("Careers.html");</script>';
        }else
       {
             echo"<script>alert('Could not send mail! Please check your PHP mail configuration.')</script>";
        }

    }
    ?>

My problem is I need to set the success alert in the same html page. But here my success alert is opening in PHP page.

How to add this php code in same html page?

Upvotes: 2

Views: 3059

Answers (2)

Hemant Maurya
Hemant Maurya

Reputation: 174

set a condition on success create a session $_SESSION['action] = "Your Massage";

and when page refresh.

there would be a place where you want to echo that massage.

Upvotes: 0

Lal
Lal

Reputation: 14810

To view the message or alert on the same page, you can just copy your php code in the same HTML page. Do it as below

your_html.php

<form method="post" action="" enctype="multipart/form-data"> 
     <tr>
     <td>First Name  </td>
     <td><input type="TextBox" name="First_Name" class="applytext" required></td>
     </tr>
     <tr>
     <td>Last Name </td>
     <td><input type="TextBox" name="Last_Name" class="applytext" required></td>
     </tr>
     <tr>
     <td>E-mail  </td>
     <td><input type="TextBox" name="email" class="applytext" required></td>
     </tr>
     <tr>
     <td>Phone  </td>
     <td><input type="TextBox" name="Phone_No" class="applytext" required></td>
     </tr>
      <tr>
    <td>Attachment  </td>
    <td><input type="file" name="attachment" maxlength="50" allow="text/*" class="applytext" required></td>
    </tr>
     <tr>
     <td colspan="2"><input type="submit" name="button" class="send-resume" value="SEND" style="margin-left:24%;">
    <input type="reset" value="RESET" style="margin-left:8%"></td>
     </tr>
     </form>


<?php 
    if($_POST && isset($_FILES['attachment']))
    {  
        $name= $_POST['First_Name'];
        $lname= $_POST['Last_Name'];
        $email= $_POST['email'];
        $phonenum = $_POST['Phone_No'];
        $from_email = $_POST['email']; //sender email
        $recipient_email = '[email protected]'; //recipient email
        $subject = 'Test Email '; //subject of email
        $message = 'Resume attached below.'; //message body
            $emailbod = "$name
        $lname
         $email
         $phonenum";
        //get file details we need
        $file_tmp_name    = $_FILES['attachment']['tmp_name'];
        $file_name        = $_FILES['attachment']['name'];
        $file_size        = $_FILES['attachment']['size'];
        $file_type        = $_FILES['attachment']['type'];
        $file_error       = $_FILES['attachment']['error'];

        $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);

        if($file_error>0)
        {
            die('upload error');
        }
        //read from the uploaded file & base64_encode content for the mail
        $handle = fopen($file_tmp_name, "r");
        $content = fread($handle, $file_size);
        fclose($handle);
        $encoded_content = chunk_split(base64_encode($content));


            $boundary = md5("sanwebe"); 
            //header
            $headers = "MIME-Version: 1.0\r\n"; 
            $headers .= "From:".$from_email."\r\n"; 
            $headers .= "Reply-To: ".$user_email."" . "\r\n";
            $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n"; 

            //plain text 
            $body = "--$boundary\r\n";
            $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
            $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; 
            $body .= chunk_split(base64_encode($emailbod)); 

            //attachment
            $body .= "--$boundary\r\n";
            $body .="Content-Type: $file_type; name=\"$file_name\"\r\n";
            $body .="Content-Disposition: attachment; filename=\"$file_name\"\r\n";
            $body .="Content-Transfer-Encoding: base64\r\n";
            $body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n"; 
            $body .= $encoded_content; 



        $sentMail = @mail($recipient_email, $subject,  $body, $headers);
        if($sentMail) //output success or failure messages
        { 
                 echo '<script type="text/javascript">alert("Thanks for your interest. Your Resume has been sent to [email protected]");window.location.assign("Careers.html");</script>';
        }else
       {
             echo"<script>alert('Could not send mail! Please check your PHP mail configuration.')</script>";
        }

    }
    ?>

Dont forget to remove the action attribute of <form>. Also the extension of your HTML page should be changed to php.

Upvotes: 1

Related Questions