WordPress插件在页面刷新时丢失$ _POST变量

时间:2017-04-12 03:42:10

标签: php html wordpress post

我正在编写一个简单的WordPress插件,用于管理wp-admin区域中数据库中的分发服务器。用户需要首先选择州,并且列表将显示该类别中的分销商 - 并且他们将能够进行CRUD。

问题,选择操作有效,执​​行回发并进入查询。问题是当我进行“刷新”时,浏览器不会发送$ _POST。我假设这可能是一个WordPress的事情,因为这通常适用于正常情况。有什么想法吗?

这是我的示例代码:

function distributor_manager() {
    global $wpdb,$table_prefix;
    $disttable = $table_prefix.'tblDistributors';
    echo '<h1>Distributor Manager</h1>';
    echo '<form action="tools.php?page=distributor_manager" method="post" name="StateOption">';
    echo '<table cellpadding="2" cellspacing="0" border="0">
            <tr>
                <td valign="middle"><strong>Select State:</strong></td>
                <td>
                <select name="StateID" onchange="document.StateOption.submit();">
                <option value="0"> - SELECT STATE - </option>';
                $States = getStates();
                foreach ( $States as $abbreviation=>$fullname){
                    $display            = $fullname;
                    $xID                = $abbreviation;
                    if(isset($_POST['StateID']) && $_POST['StateID'] == $xID){
                        echo '<option value="'.$xID.'" selected="selected">'.$display.'</option>';
                    }else{
                        echo '<option value="'.$xID.'">'.$display.'</option>';
                    }
                }
                echo' </select>
                </td>
            </tr>
        </table>';
    echo '</form>';

    var_dump($_POST);
    var_dump($_REQUEST);
    if(isset($_POST['StateID']) && $_POST['StateID'] != '0' && !isset($_POST['form']) && !isset($_POST['formAction'])){
        if(!preg_match('/[A-Z]{2}/',$_REQUEST['StateID'])){
            echo 'ERROR';exit();
        }
        $sql = "SELECT *
                FROM ".$disttable."
                WHERE State = %s
                ORDER BY CompanyName";
        $distributors = $wpdb->get_results( $wpdb->prepare($sql, $_POST['StateID']) );
        echo '<div id="distributors">';
        echo '</div>';
    }
}

我回复了$ _REQUEST和$ _POST。当我进行选择时,它们具有值。如果我刷新浏览器,它们会变空,直到我从下拉列表中选择另一个选项。

0 个答案:

没有答案