如何在提交表单后添加消息? PHP,Wordpress

时间:2014-09-23 23:58:59

标签: php wordpress forms submit message

我尝试制作一个功能,用户收到一条消息,说明"您的更改已保存"在用户按下"保存更改后#34;。在提交表单时,页面只是刷新而不会重定向到任何其他页面。

我尝试过几件事,但似乎没什么用。我擅长HTML而不是PHP。如果你们中的任何一个人能帮助我,我会很高兴的!

我的个人资料模板的代码如下:

<div class="user-image">            
<div class="bordered-image thick-border">
    <?php echo get_avatar(ThemexUser::$data['user']['ID'], 200); ?>
</div>
<div class="user-image-uploader">
    <form action="<?php echo themex_url(); ?>" enctype="multipart/form-data" method="POST">
        <label for="avatar" class="button"><span class="button-icon upload"></span><?php _e('Skift billede','academy'); ?></label>
        <input type="file" class="shifted" id="avatar" name="avatar" />
        <input type="hidden" name="user_action" value="update_avatar" />
        <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(THEMEX_PREFIX.'nonce'); ?>" />
    </form>
</div>
</div>
<div class="user-description">

<form action="<?php echo themex_url(); ?>" class="formatted-form" method="POST">
    <div class="message">
        <?php ThemexInterface::renderMessages(); ?>
    </div>
    <div class="sixcol column">
        <div class="field-wrapper">
            <input type="text" name="first_name" size="30" value="<?php echo ThemexUser::$data['user']['profile']['first_name']; ?>" placeholder="<?php _e('Fornavn','academy'); ?>" />
        </div>
    </div>
    <div class="sixcol column last">
        <div class="field-wrapper">
            <input type="text" name="last_name" size="30" value="<?php echo ThemexUser::$data['user']['profile']['last_name']; ?>" placeholder="<?php _e('Efternavn','academy'); ?>" />
        </div>
    </div>              
    <div class="clear"></div>

    <!-- ADRESSE -->
    <?php if(!ThemexCore::checkOption('profile_signature')) { ?>
    <div class="field-wrapper">
        <input type="text" name="signature" value="<?php echo ThemexUser::$data['user']['profile']['signature']; ?>" placeholder="<?php _e('Adresse','academy'); ?>" />
    </div>
    <?php } ?>

    <div class="user-fields">
        <?php ThemexForm::renderData('profile', array(), ThemexUser::$data['user']['profile']); ?>
    </div>

    <?php } ?>

    <a href="#" class="button submit-button"><span class="button-icon save">    </span><?php _e('Gem ændringer','academy'); ?></a>
    <input type="hidden" name="user_action" value="update_profile" />
    <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(THEMEX_PREFIX.'nonce'); ?>" />
</form>

</div>

1 个答案:

答案 0 :(得分:0)

您正在提交另一个网址。因此,您可以在函数文件中添加类似下面的内容,以便在url附加了msg时显示消息。 (您可以使用下面的开关记录多条消息,查找它)您还需要在表单操作中添加“?msg = yourmessagevariable”。

add_action('wp_print_scripts', 'notifcation', 100);

function notifcation () {

    if($_GET['msg']) {

        $message= sanitize_text_field($_GET['msg']);

        switch($message) {

            case 'reg-business':

                $notehead= 'Please register first';
                $msg= 'Please register your business before continuing';
                break;  

            case 'nowvalid':

                $notehead= "Congratulations";
                $msg='You have successfully connected ';
                break;

            case 'Completed':
                $notehead= 'Edited';
                $msg='You have successfully edited your advert';
                break;
        }


        ?>

            <section id="notification" class="notif notif-notice">
                  <h6 class="notif-title"><?php echo $notehead;?></h6>
                  <p><?php echo $msg; ?></p>

                  <div class="notif-controls">
                   <a href="index.html" class="notif-close">Close</a>
                   </div>
            </section>      

            <script type="text/javascript">

                jQuery(document).ready(function() {
                    setTimeout(function(){
                    jQuery('#notification').css('display', 'none');
                    },3000)

                });
                jQuery('.notif-close').click(function(e){
                    e.preventDefault();
                    jQuery(this).parent().parent().css('display', 'none');

                })

            </script>




        <?php

    }



}