2016-02-15 26 views
0

嗨我有一个HTML文件,其中包含一个表单和一个接收html表单数据的php文件。 我想在PHP文件执行后在html文件(div容器内)中显示确认消息。到处寻找很多东西,但仍然没有得到答案。如何在提交表单后在HTML页面中进行确认

这里是我的HTML表单(enquiry.html)

<div class="form-body"> 

            <form method="post" action="/"> 
             <span id="MasterInner_lblName">Your Name</span> 
             <input name="MasterInner_txtName" type="text" /> 
             <span id="MasterInner_lblEmail">Your Email</span> 
             <input name="MasterInner_txtEmail" type="email" /> 
             <span id="MasterInner_lblMobile">Your Mobile</span> 
             <input name="MasterInner_txtMobile" type="text" /> 
             <span id="MasterInner_lblCity">Your City</span> 
             <input name="MasterInner_txtCity" type="text" /> 
             <span id="MasterInner_lblCity">Remarks</span> 
             <textarea name="MasterInner_txtRemarks" /></textarea> 
             <button type="button" name="MasterInner_submit" value="Submit" id="submitform" Class="form-button" />Submit</button> 
            </form> 
           </div> <!-- Form ends --> 
           <div id="confirmID">test for form submission</div> 
           <script> 
            $("#submitform").click(function() { 
             //code 
             $.post("enquiry.php", { 
             MasterInner_txtNamePost: MasterInner_txtName, 
             MasterInner_txtEmailPost: MasterInner_txtEmail, 
             MasterInner_txtMobilePost: MasterInner_txtMobile, 
             MasterInner_txtCityPost: MasterInner_lblCity, 
             MasterInner_txtRemarksPost: MasterInner_txtRemarks 
             },function(data) { 
              alert("Form submitted"); 
              document.getElementByID(confirmID).innerHTML = "Submitted"; 
             }); 
            }); 
           </script> 

我无法理解,有什么用PHP编写设置“感谢您提交”,在HTML页面信息。

Enquiry.php文件

<?php 

//使用error_reporting(0);

//if($_POST["w32apideftype"]!="") 
//{  
    //echo $_POST["key"]; 
    // Function for filtering input values. 
    function test_input($data) 
    { 
     $data = trim($data); 
     $data =stripslashes($data); 
     $data =htmlspecialchars($data); 
     return $data; 
    } 
    //echo "ths i stest"; 
    // Initialize variables to null. 
    $s_name="ABC";// Sender Name 
    $s_email="[email protected]";//Sender's Email 
    $r_email="xyz <xyz.com>";//Recipient Email 
    $subject1="My subject";//Subject of mail 
    //Form Data vars 
    $f_name =""; 
    $f_email =""; // Sender's email ID 
    $f_message =""; // Sender's Message 
    $f_phone="";//Sender's Phone 
    $f_city="";//Sender's city 
    //Form data vars end 

    $nameError =""; 
    $emailError =""; 
    $f_phoneError=""; 
    $f_cityError=""; 
    $subjectError =""; 
    $f_messageError =""; 
    $successMessage =""; // On submittingform below function will execute. 
    if(isset($_POST['MasterInner_submit'])) { // Checking null values in message. 
     //echo "Submit button pressed"; 

     if (empty($_POST["MasterInner_txtName"])){ 
      $nameError = "Name is required"; 
      //echo $nameError; 
     } 
     else 
     {   
      if (!preg_match("/^[a-zA-Z ]*$/",$f_name)) 
      { 
       $nameError = "Only letters and white space allowed"; 
      } 
      else 
      { 
       $f_name = test_input($_POST["MasterInner_txtName"]); // check name only contains letters and whitespace 
       //echo $name; 
      } 
     } // Checking null values inthe message. 
     if (empty($_POST["MasterInner_txtEmail"])) 
     { 
      $emailError = "Email is required"; 
      //echo $emailError; 
     } 
     else 
     { 
      $f_email = test_input($_POST["MasterInner_txtEmail"]); 
      //echo $email; 
     } // Checking null values inmessage. 
     if (empty($_POST["MasterInner_txtRemarks"])) 
     { 
      $f_messageError = "Message is required"; 
      $f_message="No Additional message"; 
      //echo $f_messageError; 
     } 
     else 
     { 
      $f_message = test_input($_POST["MasterInner_txtRemarks"]); 
      //echo $f_message; 
     } // Checking null values inthe message. 
     if (empty($_POST["MasterInner_txtMobile"])) 
     { 
      $f_phoneError = "Genuine phone is required"; 
      //echo $f_phoneError; 
     } 
     else 
     { 

      $f_phone = test_input($_POST["MasterInner_txtMobile"]); 
      //echo $f_phone; 
     } // Checking null values inmessage. 

     if ($_POST["MasterInner_txtCity"]=="Not Selected") 
     { 
      $f_cityError = "city is required"; 
      //echo $f_cityError; 
     } 
     else 
     { 
      $f_city = test_input($_POST["MasterInner_txtCity"]); 
      //echo $f_city; 
     } // Checking null values inmessage. 

     if(!($f_name=='') && !($f_email=='') &&!($f_phone=='') &&!($f_city=='')) 
     { // Checking valid email. 
      if (preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$f_email)) 
      { 
       $email=str_replace(",","",$f_email); 

       $header1 = 'MIME-Version: 1.0' . "\r\n"; 
       $header1 .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
       $header1 .= 'To: '.$r_email."\r\n"; 
       $header1 .= 'From: '.$s_name.'<'. $s_email .'>' . "\r\n"; 
       $header1 .= 'Cc:' . "\r\n"; 
       $header1 .= 'Bcc:' . "\r\n"; 


       /* Let's prepare the message for the e-mail */ 
       //$msg = wordwrap($msg, 70, "\r\n"); 
       $msg1 = '<html><head><title>Enquiry</title></head> 
        <body><table style="font-size:16px;font-weight:bold;border:3px solid #e0781f;"bgcolor="#dededc" align="center" width="500"><tr><td colspan="2"><h1>'.$f_name.' sent a Enquiry</h1></td></tr> 
        <tr><td>Name: </td><td>'.$f_name.'</td></tr> 
        <tr><td>E-mail: </td><td>'.$f_email.'</td></tr> 
        <tr><td>Phone: </td><td>'.$f_phone.'</td></tr> 
        <tr><td>city: </td><td>'.$f_city.'</td></tr> 
        <tr><td>Message: </td><td>'.$f_message.'</td></tr></table> 
        </body></html>'; 
       /* Send the message using mail() function */ 
       //echo "message1: - $msg and message 2 : - $msg1"; 


       if(mail($s_email,$subject1,$msg1,$header1)) 
       { 
        $successMessage = "Message sent successfully......."; 
        echo"Thank You"; 
        header("location:".$_POST["w32apideftype"]); 
       } 
      } 
      else 
      { 
       $emailError = "Invalid Email"; 
       //echo"Invalid Email"; 

      } 
     } 
    } 
//} 

?>

请帮助,得到这个工作。

+0

请发布您的PHP文件以及 – zachu

+0

如果您使用ajax将表单的详细信息提交给php,您可以等待回调状态,然后显示成功消息 - 您也可以回显一些数据从PHP到ajax说什么 - http://api.jquery.com/jquery.ajax/ - 在该页面上搜索(保存一些数据到服务器,并在用户完成后通知用户。) – Tasos

回答

0

如果您可以使用JavaScript,可以通过添加一个单击事件和发布方法轻松完成此操作。例如:

document.getElementByID("id").click(function() { 
        //code 
        $.post("enquiry.php", { 
        MasterInner_txtMobilePost: MasterInner_txtMobile, 
        MasterInner_txtCityPost: MasterInner_lblCity, 
        MasterInner_txtRemarksPost: MasterInner_txtRemarks 
        }, function(data) { 
         alert("Form submitted"); 
         document.getElementByID("confirmID").innerHTML = "Submitted"; 
        }); 
        } 
       }); 
+0

嗨,感谢您的宝贵回复。我试过这个,但不知道为什么没有发生。我使用jquery脚本和enquiry.php共享我的更新代码。请看看这是否可以工作。谢谢 –

+0

首先,你需要确保身份证是正确的。第一个“ID”应该是你的按钮的ID。警报后,如果您想更改某些内容的文本,我有一个confirmID。如果是这样,请确保在其周围添加引号,并将其指向要更改的标记的id的确切拼写。另外要记住的是你的php文件必须在你的html页面的同一个目录中。如果不是,您需要提供确切的网址(http://www.example.com/enquiry.php)。另外,在我上面的方法中,我将“Post”一词添加到变量中。 – Scott

0

php的结束标记之前,把下面的代码在你的PHP文件enquiry.php

header("Location: confirmation.html"); 
exit; 

注:确认页应该是一样的enquiry.html你可以与你的消息替换形式。

+0

感谢您的回复,但创建另一个带消息的页面不会锻炼。需要在同一页面上显示消息 –

相关问题