【问题标题】:CodeIgniter Select Option Only Passing First Value To PHPCodeIgniter 选择仅将第一个值传递给 PHP 的选项
【发布时间】:2018-08-28 13:35:17
【问题描述】:

我正在尝试修复用 codeigniter 编写的代码中的错误。我有一个选择器,我需要在其中选择不同的选项,但在选择不同的选项时,提交时该值仅作为第一个选项。

如下图所示,即使我选择“2nd Standard”、“3rd Standard”等,它总是自动选择“1st Standard”。

如下所示,无论我选择什么选项,它始终只显示“第一标准”。

下面是对应的php代码:

<?php echo form_open(base_url() . 'admin/section/', array('class' => 'form m-b'));?>
          <div class="row">
            <div class="col-sm-4">
              <div class="form-group">
                <label class="gi" for=""><?php echo get_phrase('class');?>:</label>
                <select class="form-control" onchange="submit();" name="class_id">
                <option value=""><?php echo get_phrase('select');?></option>
                <?php $cl = $this->db->get('class')->result_array();
                 foreach($cl as $row):
                ?>
                 <option value="<?php echo $row['class_id'];?>" <?php if($class == $row['class_id']) echo 'selected';?>><?php echo $row['name'];?></option>
              <?php endforeach;?>
                </select>
              </div>
            </div>
          </div>
        <?php echo form_close();?>

如何解决这个问题?

编辑: 下面的代码在另一个页面中适用于不同的选项:

<?php echo form_open(base_url() . 'admin/students/', array('class' => 'form m-b'));?>
          <div class="row">
            <div class="col-sm-4">
              <div class="form-group">
                <label class="gi" for=""><?php echo get_phrase('class');?>:</label>
                <select class="form-control" onchange="submit();" name="class_id">
                <option value=""><?php echo get_phrase('select');?></option>
                <?php $cl = $this->db->get('class')->result_array();
                 foreach($cl as $row):
                ?>
                 <option value="<?php echo $row['class_id'];?>" <?php if($id == $row['class_id']) echo 'selected';?>><?php echo $row['name'];?></option>
              <?php endforeach;?>
                </select>
              </div>
            </div>
          </div>
<?php echo form_close();?>

【问题讨论】:

  • &lt;select multiple name="class_id[]"
  • onchange = submit() 表单是如何提交的?阿贾克斯?看起来它可能正在重新加载页面,如果实际提交了表单,这会将您选择的索引重置为第一个。
  • @AbraCadaver 我不想选择多个选项,我需要显示选定的选项。
  • 正如@Kisaragi 所说,这可能是 js 问题,也许提交功能在您的布局中不可用

标签: php codeigniter


【解决方案1】:

能否请您告诉我 $class 的数据是从哪里获得的,或者您在哪里定义的。 下面的代码,我试过了,效果很好。

<?php echo form_open(base_url() . 'index.php/Welcome/fetchDataFromTable');?>
        <div class="row">
            <div class="col-sm-4">
                <div class="form-group">
                    <select class="form-control" onchange="submit();" name="select_dropdown">
                        <option value="">--Select--</option>
                        <?php 
                            $class = '';
                            $cl = array(
                                '1' => '1st Standard',
                                '2' => '2nd Standard',
                                '3' => '3rd Standard',
                                '4' => '4th Standard',
                                '5' => '5th Standard',
                            );
                            foreach($cl as $k => $v){
                            ?>
                                <option value="<?php echo $k; ?>" <?php if($class == $k) echo 'selected'; ?> >
                                    <?php echo $v; ?>
                                </option>
                            <?php 
                            }
                        ?>
                    </select>
                </div>
            </div>
      </div>
    <?php echo form_close();?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    相关资源
    最近更新 更多