【问题标题】:codeigniter dropdown select data from databasecodeigniter 下拉列表从数据库中选择数据
【发布时间】:2015-01-29 11:24:47
【问题描述】:
<select class="form-control">
            <?php
              $flag=0;
              foreach ($result as $row) { ?>

              if(flag==0)
              {
                 <option value="<?php echo $row->tbl_group_id; selected="selected"?>" ><?php echo $row->tbl_group_rolename; ?></option>
               flag=1;
               }
               else
               {
                 <option value="<?php echo $row->tbl_group_id;?>" ><?php echo $row->tbl_group_rolename; ?></option>
                }
              } ?>

                <option value="name">One</option>
                <option value="email">Two</option>
                <option value="three">Three</option>
                <option value="four">Four</option>
                <option value="five">Five</option>
            </select>

我有一个下拉框(在登录页面上),我必须从我的数据库中获取所有数据,并且必须动态显示。

我的表单是以引导方式创建的。 我希望所有数据都来自表格,动态地在下拉列表中以及当我选择它时;我可以注册为那个人,例如管理员/用户。

到目前为止,我什么都没试过;什么都没想到。

【问题讨论】:

  • 您的代码中有很多错位的 PHP 开始和结束标记。
  • 我知道我只是想在选项标签之间添加动态值,所以此时请不要考虑 php 格式。谢谢
  • 这与格式化无关,如果您没有将开始和结束标记放在正确的位置,您的代码就不起作用
  • 好的,先生,我会的。有没有关于这个的答案??

标签: codeigniter


【解决方案1】:

首先,您必须修复您的 PHP 开始和结束标记。这是必要的,否则 PHP 解释器不知道要评估什么。

剩下的就很简单了。我将您的 $flag 更改为布尔值,以检查当前条目是否是第一个条目,因此应该被选中。我还删除了重复的代码并引入了一个if,它为第一个选项输出selected="selected"

<select class="form-control">
    <?php
    $first=true; // Used to select the first element
    foreach ($result as $row): /* everything between here and 'endforeach' is part of the loop */ ?>
        <option value="<?php echo $row->tbl_group_id ?>" <?php if ($first) echo 'selected="selected"' ?>>
            <?php echo $row->tbl_group_rolename ?>
        </option>
        <?php if ($first) $first = false /* this makes sure that only one option element is selected */ ?>
    <?php endforeach ?>
    <option value="name">One</option>
    <option value="email">Two</option>
    <option value="three">Three</option>
    <option value="four">Four</option>
    <option value="five">Five</option>
</select>

循环遍历行。请注意,foreach 语句后的冒号使用另一种语法,如果与 HTML 混合使用,则更易于阅读:

<?php foreach ($result as $row): ?>
    <!-- HTML code here that gets printed once for each $row -->
<?php endforeach ?>

然后您将一些 PHP 代码放入 HTML 中以使其动态化。

<?php if ($first) echo 'selected="selected"' ?>

如果$first 为真,上面的代码将打印selected="selected"。第一次迭代后$first 变为 false:

<?php if ($first) $first = false ?>

【讨论】:

  • 我应该对我的控制器、模型和视图进行哪些更改
  • 除非您显示一些代码,否则我无法告诉您。编辑您的问题并发布相关代码。
  • 太好了,请考虑分享您的解决方案作为答案,以便遇到相同问题的任何人都可以从中受益。
【解决方案2】:
        <select class="form-control">
        <?php
          foreach ($result as $row) {
            $sel = ($row->tbl_group_id == $someId)?'selected="selected"':'';
          ?>
            <option value="<?php echo $row->tbl_group_id;?>" <?php echo $sel; ?> ><?php echo $row->tbl_group_rolename; ?></option>
          <?php } ?>    

            <option value="name">One</option>
            <option value="email">Two</option>
            <option value="three">Three</option>
            <option value="four">Four</option>
            <option value="five">Five</option>
        </select>

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多