0

1 つの HTML ページに 2 つのフォームがあります。1 つのフォームはデータベースに投稿し、もう 1 つのフォームはフォームの詳細を記載した電子メールを送信します。考えてみればとても単純なことですが、長い間試してみましたがうまくいきませんでした。

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;
}

足りないものはありますか??

4

3 に答える 3

1

fullnameフィールドとフィールドに同じ ID と名前を使用してsubjectいます。これが問題を引き起こしている可能性があります...

于 2012-07-16T12:12:38.143 に答える
0

フォーム(およびそれに関連付けられている値)のみが送信されます。したがって、通常の方法では実行できません。

他の送信ボタンを「クリック」するには、おそらくJavaScriptが必要です。

この質問もチェックしてください:複数のフォームを送信する

于 2012-07-16T12:13:39.863 に答える
0

送信ボタンに name 属性を使用し、ボタンがクリックされたかどうかを 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
} 
于 2012-07-16T12:11:39.583 に答える