0

「注文完了」をクリックしたときに一部のフィールドが空かどうかを確認するお問い合わせフォームがあります。ページが更新され、エラーメッセージが表示されます。

しかし、ページの名前変更を使用しています(ページの名前を変更し、同じphpページに複数のページを含める簡単な方法)

だから私はお問い合わせフォームをorder.php?action=orderに入れました

これはコードです:

<?php
if(isset($_GET['action']) && $_GET['action'] != '') {
   $action = $_GET['action'];
} else {

}
?>
<?php
if(isset($action)) {
  if($action == 'order') {
?>
<div class="container">

            <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="contactform">
                <fieldset>


                    <?php if(isset($hasError)) { //If errors are found ?>
                        <p class="alert-message error">Opps! Looks like you forgot to fill some specify field, please <b>go back</p> and fill the empty field.</p>

                    <?php  } ?>

                    <?php if(isset($emailSent) && $emailSent == true) { //If email is sent ?>
                        <div class="alert-message success">
                            <p style="color: white;" ><strong>Your Order has been Successfully Sent!</strong></p>
                            <p style="color: white;" >Thank you for submitting your order, <strong><?php echo $pname;?></strong>! Please check your Private Messages folder at <strong><?php echo $forum;?></strong>, as we will get back to you soon. You will redirect back to homepage in less than 5 seconds.<meta HTTP-EQUIV="REFRESH" content="5; url=http://justxp.plutohost.net/jonydesigns/index.php"></p>
                        </div>
                    <?php } ?>
                        <div class="formwarp">
                        <div class="tos1">
<input type="checkbox" id="new_info_yes" class="box1"> I agree to the <a href="#" style="color: #4fc5cf;" >Terms of Service</a>.
    </div><br />
<div id="new_info_form">
                    <div class="clearfix">
                        <label for="subject">
                            <span class="coloring">Forums Name:</span>
                        </label>


                                            <div class="input">
                            <select name="forumn" id="forumn" class="span6 required" role="select" aria-required="true">
                                <option value="slct">Please select a forum</option>
                                <option value="hackforums">Hackforums</option>
                                <option value="sythe">Sythe</option>
                                <option value="rune-server">Rune-Server</option>
                            </select>
                        </div>
                    <br />
<div id="slct" class="colors">You haven't selected any forum.</div>
<div id="hackforums" class="colors" style="display:none"> <span id="brdr">HackForums:</span> Discount Percent: <font color="green">10%</font> </div>
<div id="sythe" class="colors" style="display:none"> <span id="brdr">Sythe:</span> Discount Percent: <font color="green">15%</font> </div>
<div id="rune-server" class="colors" style="display:none"> <span id="brdr">Rune-Server:</span> Discount Percent: <font color="green">15%</font> </div>
<script type="text/javascript">
    $(function() {
        $('#forumn').change(function(){
            $('.colors').hide();
            $('#' + $(this).val()).show();
        });
    });
    </script> </div>
<br />
                    <div class="clearfix">
                        <label for="name">
                            <span class="coloring">Forums Username:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="forumuser" id="forumuser" value="" class="span6 required" role="input" aria-required="true" />
                        </div>
                    </div>

                    <div class="clearfix">
                        <label for="phone">
                            <span class="coloring">Personal Name:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="pname" id="pname" value="" class="span6 required" role="input" aria-required="true" />
                        </div>
                    </div>


                    <div class="clearfix">
                        <label for="email">
                            <span class="coloring">Email Address:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="email" id="email" value="" class="span6 required email" role="input" aria-required="true" />
                        </div>
                    </div>
                                        <div class="clearfix">
                        <label for="email">
                            <span class="coloring">PayPal Email Address:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="ppemail" id="ppemail" value="" class="span6 required email" role="input" aria-required="true" />
                        </div>
                    </div>

                    <div class="clearfix">
                        <label for="subject">
                            <span class="coloring">Product Type</span>
                        </label>
                        <div class="input">
                            <select name="product" id="product" class="span6 required" role="select" aria-required="true">
                                <option>Please select a product\project</option>
                                <option>PSD to HTML</option>
                                <option>Web Design</option>
                                <option>Thread Design</option>
                                <option>Logo Design</option>
                                <option>Banner Design</option>
                                <option>Thread design + Signature</option>
                                <option>Other (Please type in additional information field)</option>
                            </select>
                        </div>
                    </div><br />
<div style="margin-left: -13%;" id="line"></div><br />
                    <div class="clearfix">
                        <span class="coloring">Information</span>
                        <div class="input">
                            <textarea rows="8" name="message" id="message" class="span10 required" role="textbox" aria-required="true"></textarea>
                        </div>
                    </div>
                    <div class="clearfix">
                        <span class="coloring">View Information</span>
                        <div class="input">
                            <textarea rows="8" name="messageview" id="messageview" class="span10 required" role="textbox" aria-required="true"></textarea>
                        </div>
                    </div>
                    <div class="clearfix">
                        <label for="phone">
                            <span class="coloring">Additional Information:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="additional" id="additional" value="Additional information regarding the product" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" class="span6 required" role="input" aria-required="true" />
                        </div>
                    </div>
                    <div class="clearfix">
                        <label for="phone">
                            <span class="coloring">PSD link:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="psd" id="psd" value="PSD link here" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" class="span6 required" role="input" aria-required="true" />
                        </div>
                    </div>
                    <div class="clearfix">
                        <label for="phone">
                            <span class="coloring">Your Budget:</span>
                        </label>
                        <div class="input">
                            <input type="text" name="money" id="money" value="$0.00 Enter your budget" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" class="span6 required" role="input" aria-required="true" />
                        </div>
                    </div>
                    <div class="actionss">
                        <input type="submit" value="Complete Order" name="submit" id="submitButton" title="Click here to submit your message!" />
                    </div>
                </fieldset>
            </form>
            </div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){

    $('input#upload_yes').change(function(){
        if($(this).is(':checked')) {
            $("#upload_form").show();
        } else {
            $("#upload_form").hide();
        }
    });

    $('input#new_info_yes').change(function(){
         if($(this).is(':checked')) {
                $("#new_info_form").slideDown(500);
        } else {
                $("#new_info_form").delay(300).slideUp(500);;
        }   
    });

    //Trigger the change event so the divs are initially shown or hidden.
    $('input[type=checkbox]').trigger('change');

});
</script>
<?php
  } 
  elseif($action == 'contact') {
  ?>
 <!-- action=contact info here -->
<?php
  }
}
?>

これにより、ページが開始されますか?action = order

<?php
if(isset($action)) {
  if($action == 'order') {
?>

フォームが表示され、すべて問題ありません。ただし、すべてを入力して[注文を完了する]をクリックすると、order.phpにリダイレクトされ、アラートは表示されません。注文が送信された場合は、次のアラートが表示されます。

                <?php if(isset($emailSent) && $emailSent == true) { //If email is sent ?>
                    <div class="alert-message success">
                        <p style="color: white;" ><strong>Your Order has been Successfully Sent!</strong></p>
                        <p style="color: white;" >Thank you for submitting your order, <strong><?php echo $pname;?></strong>! Please check your Private Messages folder at <strong><?php echo $forum;?></strong>, as we will get back to you soon. You will redirect back to homepage in less than 5 seconds.<meta HTTP-EQUIV="REFRESH" content="5; url=http://justxp.plutohost.net/jonydesigns/index.php"></p>
                    </div>
                <?php } ?>

そして、何かが空の場合、このエラーを表示する必要があります。

                <?php if(isset($hasError)) { //If errors are found ?>
                    <p class="alert-message error">Opps! Looks like you forgot to fill some specify field, please <b>go back</p> and fill the empty field.</p>

                <?php  } ?>

ただし、エラーはまったく表示されません。order.phpページにリダイレクトされますが、成功した場合は、電子メールが送信されるだけで、アラートは表示されません。

どうすれば修正できますか、または何が原因で発生しますか?

http://justxp.plutohost.net/jonydesigns/order.php?action=order

巨大なコードで申し訳ありませんが、私はこの質問をもっときれいにする方法を知りませんでした。

4

2 に答える 2

0

そのエラーが発生しているときにスクリプトの実行を停止しないので、コードのテストはとにかく続行されます。

これは理想的な解決策ではありませんが、コードの記述方法は...

ここにdie()関数を入れて、停止することができます。

<?php if(isset($hasError)) { //If errors are found ?>
  <p class="alert-message error">Opps! Looks like you forgot to fill some specify field, please <b>go back</p> and fill the empty field.</p>
  die(); //See me here!
<?php  } ?>
于 2012-10-23T16:05:52.933 に答える
0

私がそれを解決した権利、

エラーセクションをページの先頭に移動しました。エラーが発生したかどうかを確認し、エラーが発生した場合はエラーまたはアラートを表示します。

こんなに簡単な質問を投稿してすみません^^

于 2012-10-23T16:28:00.153 に答える