我正在制作一张表格而且我偶然发现了一个问题。我有不同的用户,我希望他们看到我的一个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?
答案 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
这里更有意义。