提交和页面刷新后清除表单 - Wordpress

时间:2014-02-18 03:37:13

标签: wordpress

我知道插入数据的正确方法是使用AJAX,但我不介意页面是否刷新。页面刷新后,有人可以帮我清除表单数据吗?一切正常,数据被提交到表格,页面刷新。但是,如果我再次点击刷新按钮,它会告诉我数据将被提交......我不知道该怎么做。

<?php

    $current_user = wp_get_current_user();

    if ( $current_user->ID == 0 ) {

    } else {

        if( isset( $_POST['drop_artists'] ) ) {
            $answer = $_POST['drop_artists'];
        }else{
            $answer = $_POST['artist_name'];
        }

        $date =  current_time( 'mysql' );

           $table = "t4t5_answers";
           $sql = $wpdb->prepare( "INSERT INTO $table (user_id, post_id, info, answer, submission_date ) VALUES ( %d, %d, %s, %s, %d )", $current_user->ID, $post->ID, 'artist', $answer, $date );
            $wpdb->query($sql);

            header('Location: ' . get_bloginfo('url'));

}//if(isset($_POST['form_sub']))

?>

<form method="post" action="" id="artists-form"> 
<ul>
    <li id="categories">
        <?php 
        $args = array(
            'show_option_all'    => 'Artists',
            'hierarchical' => 1,
            'child_of' => 406,
            'order_by' => 'name',
            'name' => 'answer',
            'hide_empty' => 0
        );
        wp_dropdown_categories($args); ?>
    </li>
</ul>
<input type="text" name="artist_name" value="" size="45" id="input-title"/>
<input id="submitButton" class="subput" type="submit" name="submit" value="Add"/>
</form>

3 个答案:

答案 0 :(得分:0)

发布页面后,使用重定向将te用户发送到成功页面。这将使实际发布的页面不会出现在其历史记录中。

if (!empty($_POST)) {
    // do stuff
    header("Location: $_SERVER[PHP_SELF]");
}

请注意,重定向的网址应该是完整的网址,而不是相对网址。但实际上,我还没有看到任何浏览器的相对URL存在问题。

答案 1 :(得分:0)

要立即重定向到您当前的网址,请尝试使用

echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$current_URL.'">'

有关详细信息,请参阅http://en.wikipedia.org/wiki/Meta_refresh

答案 2 :(得分:0)

将你的php代码写入if(isset($ _ POST ['submit'])并在insert语句下面添加以下脚本。

echo "  <script type='text/javascript'>
    window.location=document.location.href;
</script>";

您的代码如下所示:

global $wpdb,$post;
if(isset($_POST['submit']))
{
    $current_user = wp_get_current_user();

    if ( $current_user->ID == 0 )
    {

    }
    else
    {

        if( isset( $_POST['drop_artists'] ) )
        {
            $answer = $_POST['drop_artists'];
        }
        else
        {
            $answer = $_POST['artist_name'];
        }

        $date =  current_time( 'mysql' );

        $table = "t4t5_answers";
        $sql = $wpdb->prepare( "INSERT INTO $table (user_id, post_id, info, answer, submission_date ) VALUES ( %d, %d, %s, %s, %d )", $current_user->ID, $post->ID, 'artist', $answer, $date );
        $wpdb->query($sql);

}

 echo "<script type='text/javascript'>
        window.location=document.location.href;
        </script>";
}

?>

<form method="post" action="" id="artists-form"> 
<ul>
    <li id="categories">
        <?php 
            $args = array(
                'show_option_all'    => 'Artists',
                'hierarchical' => 1,
                'child_of' => 406,
                'order_by' => 'name',
                'name' => 'answer',
                'hide_empty' => 0
        );
        wp_dropdown_categories($args); ?>
    </li>
</ul>
<input type="text" name="artist_name" value="" size="45" id="input-title"/>
<input id="submitButton" class="subput" type="submit" name="submit" value="Add"/>
</form>

这将在表单提交后刷新页面,并且不会重新提交表单值。