php动态添加下拉选项,使用PHP函数使用数组创建动态下拉菜单:下拉列表不会填充...

我正在尝试使用PHP动态构建下拉菜单。这个想法是:元素是从一个调用和数组的循环中形成的。如果数组元素与会话中保存的数据相匹配,那么它会将“selected”属性添加到标记,这意味着该页面显示先前选择的选项。

我试图在这里包含一组完整的代码,从定义会话数据的变量到回应表单元素的HTML。

它目前不工作 - 显示下拉菜单,但是为空,并且没有选项。我已经用ideone调试过它,它似乎能够成功运行,而且我看不到错误,但是这是我的第一个PHP函数!所以我确信我已经搞砸了:)

任何帮助非常感谢。

session_start();

//if the session data has been set, then the variable $sv_02 is defined

//as the data held in the session under that name, otherwise it is blank

if (isset($_SESSION['sv_02'])) {$sv_02=$_SESSION['sv_02'];} else {$sv_02="";}

//define the array

$dm_sv_02 = array('-Year','-2012','-2011','-2010','-2009');

//create the function

function dropdown($dropdownoptions, $session_data)

{

foreach($dropdownoptions as $dropdownoption){

if($session_data == $dropdownoption){

echo '' . $dropdownoption . '';

} else {

echo '' . $dropdownoption . '';

}

}

}

//echo the HTML needed to create a drop down, and populate it with

//the function which should create the elements

echo '';

dropdown($dm_sv_02, $sv_02);

echo '';

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Qt实现QComboBox填充样式下列表,可以通过使用QStyledItemDelegate来自定义下选项的显示样式。以下是一个简单的实现示例: 首先,在QComboBox中设置自定义委托: ``` QComboBox *comboBox = new QComboBox(); comboBox->setItemDelegate(new StyledItemDelegate(comboBox)); ``` 然后,创建自定义委托类StyledItemDelegate,继承自QStyledItemDelegate,重写paint()函数,实现自定义绘制: ``` class StyledItemDelegate : public QStyledItemDelegate { public: StyledItemDelegate(QObject *parent = 0) : QStyledItemDelegate(parent) {} void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { if (index.isValid()) { // 获取填充名称和图案 QString name = index.data(Qt::DisplayRole).toString(); QPixmap pattern = index.data(Qt::DecorationRole).value<QPixmap>(); // 绘制填充名称和图案 painter->save(); painter->setRenderHint(QPainter::Antialiasing); painter->drawPixmap(option.rect.x() + 2, option.rect.y() + 2, pattern); painter->drawText(option.rect.adjusted(22, 0, 0, 0), Qt::AlignVCenter, name); painter->restore(); } else { QStyledItemDelegate::paint(painter, option, index); } } }; ``` 最后,添加选项时,设置填充名称和图案: ``` QPixmap pattern(":/images/pattern.png"); // 加载填充图案 comboBox->addItem(QIcon(pattern), "填充1"); comboBox->addItem(QIcon(pattern), "填充2"); comboBox->addItem(QIcon(pattern), "填充3"); ``` 这样就可以实现QComboBox填充样式下列表了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值