如何在表单提交的html页面中显示PHP的成功消息

如何在表单提交的html页面中显示PHP的成功消息

问题描述:

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 = 'nisha@acute.company'; //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
"; 
            $headers .= "From:".$from_email."
"; 
            $headers .= "Reply-To: ".$user_email."" . "
";
            $headers .= "Content-Type: multipart/mixed; boundary = $boundary

"; 

            //plain text 
            $body = "--$boundary
";
            $body .= "Content-Type: text/plain; charset=ISO-8859-1
";
            $body .= "Content-Transfer-Encoding: base64

"; 
            $body .= chunk_split(base64_encode($emailbod)); 

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

"; 
            $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 HR@prominData.com");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?

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 = 'nisha@acute.company'; //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
"; 
            $headers .= "From:".$from_email."
"; 
            $headers .= "Reply-To: ".$user_email."" . "
";
            $headers .= "Content-Type: multipart/mixed; boundary = $boundary

"; 

            //plain text 
            $body = "--$boundary
";
            $body .= "Content-Type: text/plain; charset=ISO-8859-1
";
            $body .= "Content-Transfer-Encoding: base64

"; 
            $body .= chunk_split(base64_encode($emailbod)); 

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

"; 
            $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 HR@prominData.com");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.

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.