使用PHP

时间:2019-01-25 01:09:26

标签: php html

我正在尝试创建一个html / php表单,该表单允许在拖放菜单中显示数据数组。我怎么把它变成一个?

<?php

$OptionID   =   1;

foreach( $this->setRoleOptions as $RoleID => $RoleName ) :

    echo '<div align="center">';
    echo '<input type="checkbox" style="width: 30px;" name="RoleID" value="'. $RoleID .'" ';

    if ( $OptionID == 1 ) :

        echo ' CHECKED ';

    endif;

    echo '/>&nbsp;'. $RoleName;
    echo '</div>';

    ++$OptionID; 

endforeach;

?>

我尝试了下面的代码来获取数组,但是一旦选择了该选项,就什么也不会发生。

<?php
$OptionID = array("Administrative", "Operations 1", "Operations 2");
?>

<select>
    <?php foreach ($this->setRoleOptions as $RoleID => $RoleName): ?>
    <option name="RoleID" value="<?php echo $RoleID; ?>"<?php if ($row['RoleID'] == $OptionID): ?> selected="selected"<?php endif; ?>>
        <?php echo $RoleName;?>
    </option>
    <?php endforeach; ?>
</select>

2 个答案:

答案 0 :(得分:0)

要转换当前具有的复选框,只需使用与您相同的数据创建一个简单的<select>标记。

这是主意:

<?php $OptionID = array("Administrative", "Operations 1", "Operations 2"); ?>

<select name="RoleID">
    <?php foreach ($this->setRoleOptions as $RoleID => $RoleName): ?>
    <option 
        value="<?php echo $RoleID; ?>" 
        <?php echo in_array($RoleID, $OptionID) ? 'selected: ''; ?>
    >
        <?php echo $RoleName; ?>
    </option>
    <?php endforeach; ?>
</select>

name属性应位于select标记本身上。 value属性应该在option标签上。

由于每次迭代时,您都需要检查当前的$RoleID是否在$OptionID内,in_array()是一个数组,因此最好使用内置函数{{1} }。

答案 1 :(得分:0)

select标签应该有一个名称,而选项则没有。