2012-07-16 104 views
0

我在一个HTML页面中有2个表单。一个表单发布到数据库,另一个表单发送一封包含表单详细信息的电子邮件。当我想起它时很简单,但是尝试了很久却没有成功。使用POST方法在HTML中提交2个不同的表单

HTML:

<ul class="slides"> 
     <li> 
      <div id="contactFormContainer" class="container"> 
       <div class="left"> 
        <h1 class="uppercase">do you have project inquiry??</h1> 

        <form id="contactForm" method="POST" name="contactForm" action=""> 
         <fieldset> 
          <p> 
           <label for="fullname">Fullname</label> 
           <input name="fullname" id="fullname" type="text"> 
          </p> 
          <p> 
           <label for="email">Email</label> 
           <input name="email" id="contact_email" type="text"> 
          </p> 
          <p> 
           <label for="fullname">Subject</label> 
           <input name="fullname" id="fullname" type="text"> 
          </p> 
          <p> 
           <label for="fullname">Project Description</label> 
           <textarea name="message" id="message" rows="2" cols="20"></textarea> 
          </p> 
          <p> 
           <input class="btn" id="contactSubmit" type="submit" value="Submit"> 
          </p> 
         </fieldset> 
        </form>  
       </div> <!-- end left --> 

       <div class="right"> 
        <span class="head">Twitter Feeds</span> 
        <div class="twitter"> 
         <!-- twitter feed will be generated --> 
        </div> 
       </div> <!-- end right --> 
      </div> <!-- end contact form container --> 
     </li> 

     <li> 
      <div class="head container"> 
       <h2>coming soon...</h2> 
      </div> 

      <div class="body container"> 
       <h1 class="uppercase">Subash.com is coming with new face.</h1> 
       Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Donec id elit non mi porta gravida at eget metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Cum sociis natoque penatibus et magnis dis parturient. 
      </div> 

      <div class="footer container"> 
       <p class="signup"><span class="cursive">sign up</span> ..be the first to be notified</p> 

       <div class="inputbox"> 
        <form accept-charset="UTF-8" action="" name="subscribeForm" id="subscribeForm" method="post"> 

         <input class="email_field" id="email" name="email" placeholder="Type your email address..." type="email"> 
         <input class="submit_button" type="submit"> 

        </form> 
        <div class="status"> 
         <?php 
          if(isset($status)){ 
           echo '<p>' . $status . '</p>'; 
          } else { 
           echo '<p class="spam">We will never spam you.</p>'; 
          } 
         ?> 
        </div> 
       </div> 
      </div> 
     </li> 
    </ul> 

PHP

<?php 
require_once('includes/db.php'); 
require_once('includes/functions.php'); 
require_once('includes/validate.php'); 

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
// subscribe form 
$email = trim($_POST['email']); 

if(empty($email) || !valid_email($email)){ 
    $status = 'Please provide valid email address.'; 
} else { 
    if(email_exist($email)){ 
     $status = 'You are already subscribed.'; 
    } else { 
     add_email($email); 
     $status = 'Thank you for subscribing.'; 
    } 
} 
} 

require 'index.tmpl.php'; 
?> 

此代码完全相同的预期。但现在我需要提交其他表格。我尝试添加该代码REQUEST_METHOD检查里面以下没有成功:

$fullname = $_POST['fullname']; 

if(!empty($fullname)){ 
    $status = 'sucess'; 
    echo $status; 
} else { 
    echo $fullname; 
} 

我也试着这样做:

if (!empty($_POST['contactForm'])) { 
    //do something here; 
} 

if (!empty($_POST['subscribeForm'])) { 
    //do something here; 
} 

有什么我失踪?

回答

1

已使用相同的ID和名称fullnamesubject领域,这可能会导致一些问题...

+1

不敢相信我花了这么长时间对这个愚蠢的错误。干杯。 – Subash 2012-07-16 12:16:04

0

使用提交按钮的名称属性,并在php中检查按钮是否被点击。

<input class="btn" id="contactSubmit" name ="contactSubmit" 
type="submit" value="Submit"> 

<input class="submit_button" name="submitEmail" id="submitEmail" type="submit"> 
在PHP

然后

if(isset($_REQUEST['contactSubmit'])) 
{ 
     // contact submit clicked do action based on that 
} 
if(isset($_REQUEST['submitEmail'])) 
{ 
    // Send email 
} 
0

只有形式(和值与它相关联)被发送。所以你不能以正常的方式去做。

您可能需要一些JavaScript来'点击'其他提交按钮。

还检查了这个问题了:submit multiple forms

相关问题