显示或隐藏基于URL的HTML代码

时间:2016-10-27 12:54:00

标签: php html forms function url

我正在制作一张表格而且我偶然发现了一个问题。我有不同的用户,我希望他们看到我的一个SELECT标签的不同值;到目前为止,我使用PHP来获取网址,如果$ field =='捐赠者'然后它取消了一些选项。这是代码:

function defineUser($field){
    if(isset($_GET['user']) && urldecode($_GET['user'])){
        $field = urldecode($_GET['user']);
        if($field == "donor"){
            return "<p>
                    <label for=designation>Designation</label>
                    <select name='merchant_defined_field_4' id='merchant_defined_field_4' required=''>
                        <option value=''>Select...</option>
                        <option value=''>Option 1</option>
                        <option value=''>Option 2</option>
                        <option value=''>Option 3</option>
                        <option value='Other'>Option 4</option>
                    </select>
                    </p>";
        } else if ($field != "donor") {
            return "<p>
                    <label for=designation>Designation</label>
                    <select name='merchant_defined_field_4' id='merchant_defined_field_4' required=''>
                        <option value=''>...</option>
                    </select>
                    </p>";
        } else {
            return "<p>
                    <label for=designation>Designation</label>
                    <select name='merchant_defined_field_4' id='merchant_defined_field_4' required=''>
                        <option value=''>...</option>
                    </select>
                    </p>";
        }
    }
}

这是我的功能,现在我只是简单地拥有页面源代码,

<?php echo defineUser($_GET['user']); ?>

我的问题只是如何让每个用户看到标准选项集 - 在我的选择标记内 - 基于用户发送的URL?

1 个答案:

答案 0 :(得分:1)

您的代码可以简化:

function defineUser() {
    $user = isset($_GET['user']) ? urldecode($_GET['user']) : null;

    switch ($user) {
        case 'donor':
            return "<p>
                    <label for=designation>Designation</label>
                    <select name='merchant_defined_field_4' id='merchant_defined_field_4' required=''>
                        <option value=''>Select...</option>
                        <option value=''>Option 1</option>
                        <option value=''>Option 2</option>
                        <option value=''>Option 3</option>
                        <option value='Other'>Option 4</option>
                    </select>
                    </p>";
            break;

        default:
            return "<p>
                    <label for=designation>Designation</label>
                    <select name='merchant_defined_field_4' id='merchant_defined_field_4' required=''>
                        <option value=''>...</option>
                    </select>
                    </p>";
    }
}

您不需要传递它$_GET['user'],因为它是全局可访问的,除非您担心依赖性。其次,您基本上在if else子句中重复了两次相同的HTML块,使用switch这里更有意义。