PHP - 页面需要两次提交以显示更改

时间:2016-02-08 21:54:29

标签: php html

我遇到过最烦人的PHP。我需要在对页面进行更改之前提交页面TWICE。例如;如果您在启用工具时提交页面,它将显示工具的设置:要显示这些设置,您需要提交两次页面。这段代码有什么问题?

另一个例子: enter image description here

CODE:

<?php
if (isset($_POST["submit"]))
{
    $string = '<?php
    $customoptions = ' . $_POST["customoptions"] . ';
    $primarycolor = "' . $_POST["primarycolor"] . '";
    $adminbg = "' . $_POST["adminbg"] . '";
    ?>';

    $fp = fopen("includes/userstyle.php", "w");
    fwrite($fp, $string);
    fclose($fp);
}
?>
   <form action="" name="customopt" method="post">
    <table>
        <tr>
            <td>Panel language</td>
            <td>
                <select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);">
                    <option><?php echo $lang['chooselanguage']; ?></option>
                    <option value="dashboard.php?lang=en">English</option>
                    <option value="dashboard.php?lang=nl">Dutch</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>Custom Style</td>
            <td>
                <select name="customoptions" id="customoptions">
                    <option <?php echo ($customoptions == true) ? 'selected' : '' ?> value="true">
                        <?php echo $lang['enabled']; ?>
                    </option>
                    <option <?php echo ($customoptions == true) ? 'selected' : '' ?> value="false">
                        <?php echo $lang['disabled']; ?>
                    </option>
                </select>
            </td>
        </tr>
        <?php
        if ($customoptions)
        {
            ?>
            <tr>
                <td>Primary Color</td>
                <td><input name="primarycolor" type="text" id="primarycolor" value="<?php echo $primarycolor; ?>"></td>
            </tr>
            <tr>
                <td>Background Color</td>
                <td><input name="adminbg" type="text" id="adminbg" value="<?php echo $adminbg; ?>"></td>
            </tr>
            <?php
        }
        ?>
    </table>
    <input type="submit" name="submit" value="<?php echo $lang['ok']; ?>">
</form>

PS:我知道这不是一个在php文件中保存设置的好方法,但这只是一个测试,它永远不会上线。

1 个答案:

答案 0 :(得分:0)

好的,尝试这样做与表示if (isset($_POST['submit']))的顶部有关 如果未设置,请尝试并为其指定默认值。 if (!(isset($_POST['submit']))) 我引用了$ customoptions变量$ primarycolor和$ adminbg