当我完成按钮提交时,想要加载另一个php文件

时间:2015-01-27 13:14:35

标签: php wordpress

<?php function my_plugin_settings_page() {?>

    <div class="wrap">
    <h2>Staff Details</h2>

    <form method="post" action="options.php">
    <?php settings_fields( 'my-plugin-settings-group' ); ?>
    <?php do_settings_sections( 'my-plugin-settings-group' ); ?>
    <table class="form-table">
        <tr valign="top">
        <th scope="row">Accountant Name</th>
        <td><input type="text" name="accountant_name" value="<?php echo esc_attr( get_option('accountant_name') ); ?>" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Accountant Phone Number</th>
        <td><input type="text" name="accountant_phone" value="<?php echo esc_attr( get_option('accountant_phone') ); ?>" /></td>
        </tr>
    </table>
    <?php submit_button( 'Save Settings', 'primary', 'wpdocs-save-settings' ); 

    if (isset($_GET['submit'])) {
        header('Location: wamp\www\wordpress\wordpress\wp-content\plugins\MaximoPlugin\andra.php');
        exit;

    }?>
    </form>
    </div>

我的问题是,我可以通过向button_submit添加操作将用户重定向到wordpress中的另一个php文件吗?

所以它有两个事件。保存然后将用户重定向到另一个页面。

这是否可行?顺便说一句,我是php和wordpress的新手,所以我很抱歉不好的代码和东西。

if语句isent任何好我知道,但我如何检查按钮是否提交,然后将用户重定向到另一个wordpress页面..(另一个php网站。)

请告诉我一些我可以做或应该做的事情。

编辑:

好吧我把它改成了包含,但没有得到任何回复。

        </table>
    <?php submit_button(); 

    if(isset($_POST['submit']))
    {
    include('andra.php');
    }

    }?>

3 个答案:

答案 0 :(得分:1)

您可以使用wp_redirect http://codex.wordpress.org/Function_Reference/wp_redirect将用户重定向到其他网址。只需在重定向呼叫之前保存您的数据。

<?php
wp_redirect( $location, $status );
exit;
?>

答案 1 :(得分:0)

问题不是很明确,所以我会展示两个解决方案,你可以选择一个更适合你的解决方案:

解决方案1:

制作另一个档案handle_my_request.php

更改代码中的以下行:

<?php submit_button( 'Save Settings', 'primary', 'wpdocs-save-settings' ); 

    if (isset($_GET['submit'])) {
        include_once("handle_my_request.php");
        exit;

    }?>

现在在handle_my_request.php中,您可以轻松编写处理请求的方式。例如

<?php

$var1 = $_GET['myvar1'];
do_something($var1);

?>

解决方案2:

您需要手动创建另一个表单并将字段发布到您想要的其他页面。为此,您可以通过PHP(使用CURL)在服务器端进行GET / POST,也可以在客户端通过javascript进行GET / POST。

<?php function my_plugin_settings_page() {?>

<div class="wrap">
<h2>Staff Details</h2>

<form method="post" action="options.php">
<?php settings_fields( 'my-plugin-settings-group' ); ?>
<?php do_settings_sections( 'my-plugin-settings-group' ); ?>
<table class="form-table">
    <tr valign="top">
    <th scope="row">Accountant Name</th>
    <td><input type="text" name="accountant_name" value="<?php echo esc_attr( get_option('accountant_name') ); ?>" /></td>
    </tr>

    <tr valign="top">
    <th scope="row">Accountant Phone Number</th>
    <td><input type="text" name="accountant_phone" value="<?php echo esc_attr( get_option('accountant_phone') ); ?>" /></td>
    </tr>
</table>
</form>
<?php 
    submit_button( 'Save Settings', 'primary', 'wpdocs-save-settings' ); 
    if (isset($_GET['submit'])) 
    { ?>
    <form name="redirection_form" action="http://anotherwebsite.com" method="post">
        <input type="hidden" name="accountant_name" value="<?php echo esc_attr( get_option('accountant_name') ); ?>" />
        <input type="hidden" name="accountant_phone" value="<?php echo esc_attr( get_option('accountant_phone') ); ?>" />
    </form>
    <script type="text/javascript">
        document.redirection_form.submit();
    </script>
<?php } ?>
</div>

这里不用说,您需要更改表单的变量和方法及操作,以匹配您重定向到的下一页。

正如我之前所说,PHP CURL也可以实现同样的效果。

答案 2 :(得分:0)

        <form method="post" action="options.php">
    <input type='hidden' name='option_page' value='my-plugin-settings-group'   /><input type="hidden" name="action" value="update" /><input type="hidden" id="_wpnonce" name="_wpnonce" value="fc1447e3e7" /><input type="hidden" name="_wp_http_referer" value="/wordpress/wordpress/wp-admin/admin.php?page=my-plugin-settings&amp;settings-updated=true" />              <table class="form-table">
        <tr valign="top">
        <th scope="row">Accountant Name</th>
        <td><input type="text" name="accountant_name" value="1" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Accountant Phone Number</th>
        <td><input type="text" name="accountant_phone" value="1" /></td>
        </tr>
    </table>

    <p class="submit"><input type="submit" name="wpdocs-save-settings" id="wpdocs-save-settings" class="button button-primary" value="Save Settings"  /></p>

这是源视图。是的,andra.php在同一个目录中。

我正在为Wordpress制作一个插件,这与它有关吗?