如何为单个主题选项创建多项选择单选项组

时间:2011-01-23 作者:Scott B

从逻辑上讲,我认为应该是这样的。。。

<input type="radio" id="my_category_layout">
    <option value="Item1">Item 1</option>
    <option value="Item2">Item 2</option>
    <option value="Item3">Item 3</option>
</input>
但据我所知,单选按钮的标记不是这样的。

下面是我的现有代码,它创建了一个选择列表下拉菜单,允许我捕获所选值。我正在努力把它变成一个广播组。

主要的问题是,只有一个ID来表示select,但我不知道如何创建三个具有单个ID值的单选按钮,这些ID值可以传递来表示所选按钮。

我该怎么做?这是我现有的代码,用于创建具有单个id和多个值的select。。。

<?php
$mySelectOptions = array("list" => "List View", "grid1" => "Grid View Multi Column", "grid2" => "Grid View Two Column");

array(  "name" => "Category Layout",
     "desc" => "description goes here",
     "id" => "my_category_layout",
     "type" => "select",
    "options" => $mySelectOptions ),
?>
<form method="post">

<?php foreach ($options as $value) 
{
    switch ( $value[\'type\'] ) 
    {
    case "select":
    ?>
    <select class="input" name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>">
    <?php foreach ($value[\'options\'] as $option) { ?>
        <option<?php if ( get_settings( $value[\'id\'] ) == $option) { echo \' selected="selected"\';
        } 
        elseif ($option == $value[\'std\']) 
        { 
        echo \' selected="selected"\'; 
        } ?> value=\'<?php echo $option; ?>\'>
        <?php echo $option; ?></option><?php } ?>
    </select>
<?php
break;
case "radio":
?>

1 个回复
最合适的回答,由SO网友:onetrickpony 整理而成

case "radio":
  foreach ($value[\'options\'] as $option) { ?>
     <label for="<?php echo "{$value[\'id\']}_{$option}"; ?>">
     <input
        type="radio"
        name="<?php echo $value[\'id\']; ?>"
        id=<?php echo "{$value[\'id\']}_{$option}"; ?>
        value="<?php echo $option; ?>"
        <?php checked($option, get_settings($value[\'id\'])); ?>
     />
     <?php echo $option; ?>
     </label>
  <?php }
break;
但我不建议这样编码主题/插件设置。

上面的数组不仅表示选项:value,还表示输入的类型、可能的值(description,id?)。。。这感觉不对。而且您使代码缺乏灵活性。

如果您稍后决定用无线电字段更改选择字段,该怎么办?或者,如果要添加描述该选项的图像或颜色选择器,该怎么办?

为什么您认为WP的核心选项没有这样编码?

结束

相关推荐

找不到cForms操作处理程序页

我在任何地方都找不到cforms插件的操作处理程序页面。我想使用post值在cforms插件的action handler页面中编写一些函数。